继承了一些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();
}
});
}
以前见过这个或者知道会发生什么的人?