目前,我有两个下拉列表,填入用户的名和姓。从第一个下拉列表中选择用户时,该名称在第二个下拉列表中不可用。从下拉列表中删除值
我想添加第三个下拉列表,使第一个和第二个列表中选定的值不可用。我如何修改当前的代码以支持此功能?
当前的代码可以在这里找到:提前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);
}
感谢。
澄清 - 第一个和第二个下拉列表中包含名称列表。当您从第一个列表中选择一个名称时,它将从第二个列表中删除。第三个列表会发生什么? – glosrob
在第一个和第二个列表中选择的名称将不会在第三个列表中可用。 – aparker81
另一个问题,我可以看作是glosrob的问题的插件 - 如果用户第一次选择第三个下拉或第二个下拉菜单发生了什么?或者是仅当用户在第一个下拉菜单上进行选择时才启用第二个下拉菜单? – Gjohn