狗血的IE6,获取多选下拉列表值时,竟然总是无法获取正确的值

来源:互联网 发布:ubuntu 安装cmake 编辑:程序博客网 时间:2024/04/27 19:07

环境:jquery

示例代码:

$("#fbldid").click(function(){

    var so=$("#fbldid").selectedOptions();//获取选中的options项数组
    
    var s=new Array();

    for(var x=0;x<so.length;x++){
        s.push(so[x].text);//将选中的值保存进数组
    }
    $("#selmsg").html(s.join(", "));//通过一个html标签显示出来选中的值

});


以上代码用意是动态的根据用户选中多选列表中的值显示出来,但IE6死活得不到正确的选中项数组,网上有hack ie6的方法,我没用,觉的太恶心了!



取巧的办法:

$("#fbldid").blur(function(){

    var so=$("#fbldid").selectedOptions();//获取选中的options项数组
    
    var s=new Array();

    for(var x=0;x<so.length;x++){
        s.push(so[x].text);//将选中的值保存进数组
    }
    $("#selmsg").html(s.join(", "));//通过一个html标签显示出来选中的值

});

2段代码完全一样,就触发事件从click转换成blur了,放弃动态实时显示用户选中的值了,通过多选列表失去焦点时,再触发显示选中值了!牺牲一点灵活性!



鄙视IE6!!