【发布时间】:2014-07-22 10:58:49
【问题描述】:
目前,我有两个下拉列表,其中填充了用户的名字和姓氏。当从第一个下拉列表中选择用户时,该名称在第二个下拉列表中不可用。
我想添加第三个下拉列表,使第一个和第二个列表中选择的值不可用。如何修改我当前的代码以支持此功能?
当前代码可以在这里找到:http://jsfiddle.net/NfTNA/
function removeOptions(selectA,selectB,selectC) {
var firstValue = $(selectA).children(":selected").attr("value");
var secondValue = $(selectB).children(":selected").attr("value");
var thirdValue = $(selectC).children(":selected").attr("value");
// get the other element from the hidden select to put back
var prior = $("#hiddenContainer").children("[value!="+secondValue+"]").data("prior");
if (prior != undefined) {
$("#hiddenContainer").children("[value!=" + secondValue + "]").insertAfter($(selectB).children("[value=" + prior.prior + "]"));
}
if (firstValue != 0) {
// add the prior id data to the element before removing it
var priorValue = $(selectB).children("[value="+firstValue+"]").prev().attr("value");
$(selectB).children("[value="+firstValue+"]").data("prior",{prior:priorValue});
// move the selected element of selectA in selectB to hidden select
$(selectB).children("[value="+firstValue+"]").appendTo("#hiddenContainer");
}
// reselect the option in the secondary select
$(selectB).val(secondValue);
}
提前致谢。
【问题讨论】:
-
澄清一下 - 第一个和第二个下拉列表有名称列表。当您从第一个列表中选择一个名称时,它会从第二个列表中删除。第三个列表会发生什么?
-
第一个和第二个列表中选择的名称将不会出现在第三个列表中。
-
我的另一个问题可以被视为 glossrob 问题的附加问题 - 如果用户首先选择第三个下拉菜单或第二个下拉菜单会发生什么?还是只有当用户在第一个下拉菜单上进行选择时才启用第二个下拉菜单?
-
目前,选择的顺序无关紧要。如果从第二个下拉列表中选择了 userA,则 userA 在第一个下拉列表中不可用。
标签: jquery