我猜这是JS或jQuery,但我对这些都不熟悉(在PHP多年后才开始接受它们)。
我有一个表格中有3个相同的下拉框。所有这些都有一个从MySQL数据库中提取并通过PHP填充的相同引用列表。让我们说这些城市是:
3个下拉列表的默认值为:
基本上我只需要让下拉工作在3个中任何一个中选择的城市自动将其从其他2个下拉中删除。最后,3个下拉列表中不能有重复的条目。我还需要它动态发生(onChange事件?),这样如果他们在第一个列表中选择City 4,它会立即从其他两个下拉列表中删除。
希望这有道理吗?任何帮助表示赞赏!
答案 0 :(得分:1)
试试这个
var selectedVal, $this, valuesToCheck;
$("select").change(function(){
selectedVal = $(this).val();
valuesToCheck = [selectedVal];
$("select").each(function(){
valuesToCheck.push($(this).val());
$(this).find("option:disabled").removeAttr("disabled");
}).each(function(){
$this = $(this);
$.each(valuesToCheck, function(){
$this.find("option[value='"+this+"']").attr("disabled", "disabled");
});
});
});
答案 1 :(得分:1)
$("#selectBox option[value='option']").remove(); --remove
$("#selectBox").append('<option value="option">option</option>'); --add
您可以使用.change()删除选项
$("select").change(function(){
//remove option
})
从select1和select2中移除城市并且用户将select3的值更改为其他城市后会发生什么情况,您是否将城市添加回列表?
答案 2 :(得分:0)
如果他改回了下拉1的值?我想你将不得不放回去掉的价值?这将创建大量的ajax调用来刷新其他下拉列表的内容。我建议您在onChange事件上验证您的条件,如果检测到重复项,则显示一个msg。
如果您删除条目,就像其他repsonse sugest ....如果您在第一个下拉列表中逐个选择所有城市1,那么您最终将不会再在另外2个城市中输入; - )