function updateSelector()
{
//select all drop down list of field selector
var fieldSelector = $("select:not(#project):not(#allNo):not(#availableNo)");
var selected;
//copy full option list from static drop down list to temp drop down list
$("#availableNo").empty().append($("#allNo").clone());
//remove any selected option from temp option
fieldSelector.each(function() {
$("#availableNo"+" option[value="+$(this).val()+"]").remove();
});
//copy temp option to all field selector
fieldSelector.each(function() {
//store selected option for current dropdown
selected = $("option:selected", this);
//clear list then append stored selected option
$(this).empty().append(selected);
//append temp option to current dropdown
$(this).append($("#availableNo option").clone());
//add blank option
if($("option",this).length ==1)
$(this).append("<option></option>");
});
//alert("..");
}
上面的代码工作正常,但在IE中,如果之后有声明,它似乎会表现得很奇怪(如果之后没有任何问题就没问题,而且只有IE有问题)。
如果我发出警报(在最后一行),则所选选项将移动1个索引。
例如,如果有1-4选择1将导致选择2;如果选择2则为3.
有谁知道原因或原因是什么?
我真的很沮丧......
答案 0 :(得分:1)
此案例与this case
相同通过添加“this.blur();”来解决在val()语句之前
fieldSelector.each(function() {
this.blur();
$("#availableNo"+" option[value="+$(this).val()+"]").remove();
});