zoukankan      html  css  js  c++  java
  • IE6 下 jQuery 操作 select的BUG

    最近在写一个页面,在出了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);
        }
    }

  • 相关阅读:
    兼容性处理
    H5 IOS 虚拟键盘不回落的问题
    git 的版本控制
    vue-devtools工具的安装
    linux下安装mysql
    Python安装pip3常见问题
    linux下安装python3
    接口_注册接口
    接口_简单get接口_第一个接口
    Python学习笔记_Redis
  • 原文地址:https://www.cnblogs.com/hqr9313/p/2715463.html
Copyright © 2011-2022 走看看