首页 > Web开发 > 详细

通过html()的方法获取文本内容, form表单组件显示的值与获取到的值不一致的问题

时间:2014-10-16 15:41:53      阅读:342      评论:0      收藏:0      [点我收藏+]

  我在通过 html()获取对应节点的内容,发现一个问题,获取到的 form表单组件的内容值是初始加载的值,而不是经过用户修改后的值。例如页面加载时组件<input type="text" value="111111"/>,用户更改表单的值为 222222,通过父节点的html()方法获取这个组件,预期应该是<input type="text" value="222222"/>,可结果却是初始时的样子<input type="text" value="111111"/>。

  经过调试,发现通过用户更改表单的值时,是不会更改对应表单节点的html值,而是更改了缓存在内存中的属性值(例如 properties),浏览器会把这个属性值显示出来,而不是value属性的值(如果是textarea则是.html()的值).所以这个问题之所以出现,是因为我们误以为浏览器显示所用的值是存储在 一开始要浏览器显示值所使用的属性(如果是textarea则是.html()的值)。

  如果想使通过html()的获取的内容与显示的一致,可使用如下的几个方法

//更改html的值的一些方法示例
 $(".box_content input[type=‘text‘]").each(function(index, element) {//input text 标签
          $(this).attr("value",$(this).val());
  });
  $(".box_content textarea").each(function(index, element) {//textarea 标签
          $(this).html($(this).val());
 });   

然后执行 $(".box_content").html();  

 

注:当form表单使用reset的方法时,其实就是把 一开始浏览器显示值所使用的存储位置(input[text] 是value,textarea是.html())的值 重新赋予 保存用户修改表单值的属性(即val()方法获得的值的存放位置)

 

通过html()的方法获取文本内容, form表单组件显示的值与获取到的值不一致的问题

原文:http://www.cnblogs.com/lingepeiyong/p/4028858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!