本次老系统添加兼容性改造碰到的一个问题. 老系统中单击某一行时通过obj.innerHTML获取数据.用IE11一直无法获取动态赋的value值,连手动填入的也无法获取. 神奇了.
IE8下的效果:
IE11下的效果(不开兼容性)
查了半天的谷歌终于找到了一个办法.
1.先引入jquery.
2.添加代码
(function($) {
var oldHTML = $.fn.html;
$.fn.formhtml =function() {
if (arguments.length) return oldHTML.apply(this,arguments);
$("input,textarea,button", this).each(function() {
this.setAttribute('value',this.value);
});
$(":radio,:checkbox", this).each(function() {
if (this.checked) this.setAttribute('checked', 'checked');
elsethis.removeAttribute('checked');
});
$("option", this).each(function() {
if (this.selected) this.setAttribute('selected', 'selected');
elsethis.removeAttribute('selected');
});
return oldHTML.apply(this);
};
})(jQuery);
function getHTML(obj){
return $(obj).formhtml();
}
function tr_click(obj){
var _html0 = getHTML(obj);
alert(_html0);
}
总结:页面中输入的那个value,对DOM元素来说是个property,是不属于innerHTML里的IE8以下版本会出现,是因为IE不分attribute和property,这是IE的BUG,在IE9的时候终于得以修复而这个formHtml这个函数,强行给input元素加了一个叫value的attribute,从概念上说和dom的值value是不一样的,概念不同,不管怎么样,问题能解决就ok,不管是神马猫,能抓老鼠的猫就好好猫!
感谢 http://www.cnblogs.com/zhaozi/archive/2012/03/24/2415290.html
- 大小: 8.1 KB
- 大小: 14.5 KB
分享到:
相关推荐
innerHTML的使用document.getElementById("id").innerHTML = "contenttext";
google浏览器innerhtml获取表单值 用谷歌浏览器,得不到动态添加表单的值,ie却可以
$.ajax({ ... dateType:"json", ... demo2.innerHTML=demo1.value; }else{ alert("更新失败!"); demo2.innerHTML=""; demo2.innerHTML=demo1.value; } } });
2.5 原始值和引用值..............................................13 2.6 原始类型..............................................13 2.6.1 typeof 运算符..............................................14 ...
HTML标签的innerHTML和value之间的用法的区别
innerHTML-outerHTML-innerTEXT
innerHTML的简单应用
python教程-04-获取和设置标签内容(innerHTML).ev4.rar
<!... , initial-scale=1.0"> 获取内容和值 ... 获取我的内容 ... <input type="text" id="ipt" value="jack"> ... // 失去焦点时,拿到输入框里面的值 function blue() { console.log(user_text.value) } </html>
前言: 这是一个老bug了,现在提供一个完美... bug描述: 在ie下面使用innerHTML来插入option选项的话,ie会去掉前面的,并拆分成多个节点,这样会造成select的出错,不是没有插进去,而是节点在转换时出问题了,微软对
测试代码如下: 代码如下: <button value=”abc”>测试</button> [removed] var btn = document....IE8/9/10/Firefox/Safari/Chrome/Opera: 即: IE6/7 中返回的是innerHTML,实现错误。
博文链接:https://aideqianfang.iteye.com/blog/246585
主要与大家分享了js使用for循环与innerHTML获取选中tr下td值的方法,很简单,但很实用,有需要的朋友可以参考下
在IE 环境下 赋值类型为对象时 innerHTML 获取不到其改变,在FireFox环境下 .属性 方式获取不到其改变。
pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...'; } else if (pullUpEl.className.match('loading')) { pullUpEl.className = ''; pullUpEl.querySelector('.pullUpLabel')....
由于涉及到了数据的异步传输和实时显示,于是自己写了一个前端模版通过innerHTML动态更新数据。其他浏览器都工作正常,偏偏ie怎么都出不来数据。排查了半天,结果是IE的table元素为只读,不能使用innerHTML!!!!...
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 <!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </...
CHtmlView访问文件内部资源与innerHTML演示代码例子...... 1、访问文件内部资源 void CInerHTMLView::OnRes() { // TODO: Add your command handler code here //--资源访问 CString s; s.Format("res://%s....