码迷,mamicode.com
首页 > Web开发 > 详细

jquery IE6 select.val() bug报错解决办法

时间:2014-06-20 20:30:33      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:des   http   com   使用   set   cti   

原文地址:http://hi.baidu.com/kinghmx/item/395dbac3261292dcef183b52 

最近在写一个页面,在出了ie6外的所有浏览器中都正常(ie7,8,9,  firefox, chrome), IE6下提示 “无法设置selected属性。未指明的错误”。

 

后来发现是jquery 在 ie6 下操作 select控件有BUG.

 

我程序中是这样使用的:

 

$("#genre").val(0);

 

改成:

 

setTimeout(function(){ 
    $("#genre").val(0); 
},1);

 

就可以了.

 

原因是:

 

Note that the error will only occur if you call appendChild, then ask for the select‘s childNodes, then set the selected property on the newly created option. If you set selected earlier, either before appendChild or after it, there‘s no problem. And if you omit childNodes, it works. The problem with jQuery is that its .val() function loops over childNodes looking for an option to set, and thus always triggers the bug.

 

 

 

最后可以定义个函数 set_select_val来统一设置 select控件的值

 

function set_select_val(sel, val) 

    if($.browser.msie && $.browser.version=="6.0") { 
        setTimeout(function(){ 
            sel.val(val); 
        },1); 
    }else { 
            sel.val(val); 
    } 
}

ie6不支持$("#" + provinceDom).attr("value", provinceDefvalue); 

官网bug描述:

http://bugs.jquery.com/ticket/2252

jquery IE6 select.val() bug报错解决办法,布布扣,bubuko.com

jquery IE6 select.val() bug报错解决办法

标签:des   http   com   使用   set   cti   

原文地址:http://www.cnblogs.com/niaowo/p/3796082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!