IE10选择选项索引问题

时间:2016-01-22 12:04:43

标签: javascript jquery html internet-explorer

继承了一些Javascript代码(在Fiddle中为了便于再现而改写),它根据之前选择中的选择过滤选择选项。

当页面加载时,将使用Select的克隆来保存第二个Select元素的原始值。

当用户在选择元素1中进行选择时,将使用原始值恢复选择元素2(因为用户可能在元素1中进行不同的选择),然后它会过滤列表。

当用户在选择2中进行选择时,我们删除"选择..."列表中的元素...但是在IE10中,所选元素将成为它下面的选项。

在IE10中发生(IE8 / 9/11都可以,Chrome和FF的最新版本都可以)

正在恢复的.clone()元素和"选择..."选项被删除。

Here's a fiddle to check it ...

cloneModel = $("#model").clone();           

$("#make").change(function(){                                   
            restoreModels();                
            removeNoOption("#make");                
            $("#make").hide();
            $("#make").show();              
            filterModels($("#make option:selected").val()); 
            $("#model").show();             
        })          
function modelChange(){
            removeNoOption("#model");               
            $("#model").hide();
            $("#model").show(); 
        }


        function removeNoOption(element){           
            $(element + " option").each(function(){     
                if($(this).val() == "-"){
                    $(this).remove();
                }
            })
        }           
        function restoreModels(){
            $("#model").unbind();               
            $("#model").replaceWith(cloneModel);
            cloneModel = $("#model").clone();
            $("#model").change(modelChange);
            $("#model").hide();
        }

        function filterModels(make){
            $.each(models, function(key, value) {                   
                if(make != value.make){
                    $("#model option[value='"+value.model+"']").remove();   
                }

            });
        }

以前见过这个或者知道会发生什么的人?

0 个答案:

没有答案