我有3个下拉菜单,每个下拉菜单中都包含超过4个问题选项。我想要实现的是,当用户从任何一个下拉菜单中选择一个选项时,该特定选项/问题必须从其他2个下拉菜单中隐藏,并且当他更改选择时,该选项/问题必须再次显示在其他2个下拉菜单中。他可以从任何下拉菜单中选择问题。这是我到目前为止尝试过的。这段代码将在选择时隐藏选项,但我不知道如何确切地将其重新显示出来。
Javascript
var removeSelection = function (select) {
$('select').filter(':not(#' + select.attr('id') + ')').each(function () {
var index = select.find(':selected').index();
$(this).find('option:eq(' + index + ')').hide();
});
};
$(function () {
$('select').change(function () {
removeSelection($(this));
});
});
HTML
<form id="form1">
<select id="select1">
<option id="selectOpt1">Question 1</option>
<option id="selectOpt2">Question 2</option>
<option id="selectOpt3">Question 3</option>
<option id="selectOpt4">Question 4</option>
</select>
<select id="select2">
<option id="selectOpt1">Question 1</option>
<option id="selectOpt2">Question 2</option>
<option id="selectOpt3">Question 3</option>
<option id="selectOpt4">Question 4</option>
</select>
<select id="select3">
<option id="selectOpt1">Question 1</option>
<option id="selectOpt2">Question 2</option>
<option id="selectOpt3">Question 3</option>
<option id="selectOpt4">Question 4</option>
</select>
</form>
JSFIDDLE- 点击此处
更新的 Fiddle 已更新
场景1 - 从任何一个下拉列表中选择一个选项,该选项应从其他下拉列表中被禁用。 场景2 - 在同一下拉列表中更改选项。先前的选项应在其他下拉列表中启用。
id
应该是唯一的。请使用class
代替。 - Gaurav