Подтвердить что ты не робот

Jquery html() не возвращает измененные значения

У меня есть форма с текстовым полем следующим образом:

<html>
<head>
    <script type="text/javascript" src="jquery-1.6.2.js"></script>
</head>
<body>
    <input type="text" id="myTextBox" />
</body>
</html>

Когда я ввожу что-то в myTextBox, значение доступно с помощью $("#myTextBox").val(), но не отображается, если я делаю $("body").html(). Как я могу захватить строку html и значение обновленной формы? Спасибо!

4b9b3361

Ответ 1

Вы можете использовать функцию .attr().

Пример:

$("input").each(function(){
    $(this).attr("value", $(this).val());
});

После этого вы можете сделать:

    $("body").html();

Это должно работать.

Ответ 2

$('[type=text], textarea').each(function(){ this.defaultValue = this.value; });
$('[type=checkbox], [type=radio]').each(function(){ this.defaultChecked = this.checked; });
$('select option').each(function(){ this.defaultSelected = this.selected; });

затем

$("body").html()

Ответ 3

$('input').each(function(){
  $(this).attr('data-value-input', $(this).val());
});

и после этого вы можете получить свой html

var bodyHtml = $('body').html().toString().replace('data-value-input', 'value');

и все.

Ответ 4

Хорошо, есть один наиболее простой способ сделать это, используя живую функцию на входе.

$(document).ready(function() {

 var checker = false;
    $("input").live("change", function() {
        checker = (this.defaultValue !== this.value);
        if (checker)
            this.defaultValue = this.value;
    });
});