我需要实现以下场景。我做到了,它在 Firefox 中有效。但在 IE 中无效。
情景:
- 如果我从第一个下拉列表中选择值,则其余下拉列表必须隐藏该选项。
- 如果我从第一个下拉列表中取消选择该选项,它应该可用于剩余的下拉列表。
- 它一直持续到最后一个下拉菜单。
我有以下代码
HTML
<div>
<select data-label="Question 1" class="u85" id="test1">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
<div>
<select data-label="Question 1" class="u85" id="test2">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
<div>
<select data-label="Question 1" class="u85" id="test3">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
<div>
<select data-label="Question 1" class="u85" id="test4">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
然后我有以下 Jquery
$(document).ready(function(){
var selectionlist=[];
$('select').change(function()
{
var currentid=$(this).attr("id");
$(this).val()!=="Please select..."?selectionlist[$(this).parent().index()]=$(this).val():selectionlist[$(this).parent().index()]="";
$('select').each(function(i){
var currentselectboxid=$(this).attr("id");
if($(this).val()!=="Please select...")
selectionlist[i]=$(this).val();
$('#'+$(this).attr("id")+' option').each(function(){
$.inArray($(this).val(),selectionlist)!=-1?$(this).hide():$(this).show();
});
});
});
});
这在 Firefox 中运行良好。但在 IE 中不行。我已经在 google 中找到了一些东西。
JQuery 隐藏选项在 IE 和 Safari 中不起作用
如果我禁用它,它工作正常。但我的要求是隐藏和显示。我尝试添加和删除选项。但没有获得成功。
我怎样才能达到与Firefox相同的结果?
提前致谢。