jquery html()不返回已更改的值

omjgkv6w  于 2023-11-17  发布在  jQuery
关注(0)|答案(5)|浏览(126)

我有一个这样的文本框的表单:

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

pepwfjgg

pepwfjgg1#

可以使用.attr()函数。
示例如下:

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

字符串
在此之后,您可以执行:

$("body").html();


这应该能行

rks48beu

rks48beu2#

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

rryofs0p

rryofs0p3#

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

字符串
然后你就可以得到你的html

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


就是这样

cetgtptt

cetgtptt4#

有一种最简单的方法,就是在输入端使用live函数。

$(document).ready(function() {

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

字符串

stszievb

stszievb5#

长路:

$("input").each(function(){
    $(this).attr("value", $(this).val());
  });
  $("textarea").each(function(){
    $(this).text($(this).val());
  });
  $("input:checked").each(function(){
    $(this).attr("checked", true);
  });
  $("input:not(:checked)").each(function(){
    $(this).removeAttr("checked");
  });
  $("select option[selected]").each(function(i, el){
    $(el).removeAttr("selected");
  });
  $("select option:selected").each(function(i, el){
    $(el).attr("selected", true);
  });

字符串

相关问题