jquery html()不返回更改的值

时间:2011-08-17 16:03:40

标签: 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字符串和更新的表单值?谢谢!

4 个答案:

答案 0 :(得分:18)

您可以使用.attr()功能。

示例:

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

在此之后你可以做到:

    $("body").html();

这应该有用。

答案 1 :(得分:14)

$('[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()

答案 2 :(得分:2)

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

之后你可以获得你的HTML

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

就是这样。

答案 3 :(得分:1)

通过在输入上使用live函数,有一种最简单的方法。

$(document).ready(function() {

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