Javascript 具有相同选项的多个选择框-需要唯一选择
我有一个有3个选择框的表格。每个选择框都有相同的选项。我想要求您必须为每个选择框选择不同的选项。例如,假设选项是猫、狗和鸟。如果有人在第一个选择框中选择了bird,我想在其他两个框中禁用或隐藏该选项。如果他们更改了选择,则bird将再次启用或取消隐藏Javascript 具有相同选项的多个选择框-需要唯一选择,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个有3个选择框的表格。每个选择框都有相同的选项。我想要求您必须为每个选择框选择不同的选项。例如,假设选项是猫、狗和鸟。如果有人在第一个选择框中选择了bird,我想在其他两个框中禁用或隐藏该选项。如果他们更改了选择,则bird将再次启用或取消隐藏 <select id="box1"> <option value="cat">Cat</option> <option value="dog">Dog</option>
<select id="box1">
<option value="cat">Cat</option>
<option value="dog">Dog</option>
<option value="bird">Bird</option>
</select>
<select id="box2">
<option value="cat">Cat</option>
<option value="dog">Dog</option>
<option value="bird">Bird</option>
</select>
<select id="box3">
<option value="cat">Cat</option>
<option value="dog">Dog</option>
<option value="bird">Bird</option>
</select>
谢谢你的帮助 试试这个
$('select').on('change', function () {
$("select").find("option").removeAttr("disabled");
$("select").not(this).find("option[value=" + $(this).val() + "]").attr("disabled", "disabled");
});
您可以使用onchange listener并同时计算结果。此外,还添加了一个重置按钮,因为一旦选择了三个,它将成为瓶颈 工作代码如下所示 功能更改选择元素{ var值={}; elements.forEachfunctionitem{ 值[item.id]=item.value; }; elements.forEachfunctionitem{ forvar i=0;i
@下拉列表请解释原因,以便我将来更正。此代码不一致。当我在最后一个选择元素中选择最后一个剩余选项时,会发生什么情况,前两个元素现在仅禁用此选项,而其他两个选项对这两个下拉列表都启用。这意味着现在在第二个下拉列表中,我可以选择与第一个下拉列表相同的值谢谢。这似乎是最好的答案。但是,当您返回并更改第一个选择时,它是否必须重置所有内容?有没有一种方法,它只会重置您没有选择的选项?@LBF这会再次引入复杂性。例如,如果第一个下拉列表是猫,第二个是狗,第三个是鸟。。现在,如果我继续并选择dog in first,这意味着我需要清除第二个下拉列表。这意味着第三只鸟仍然被选中,但现在有可能我可以在第二个下拉菜单中选择鸟,这意味着我必须清除第三只。。这就是我建议在一个下拉列表更改值时重置以下下拉列表的原因。@LBF或者您正在寻找一种非自顶向下样式的解决方案。而是对所有下拉列表给予相同的优先级?是的,我正在寻找一种对所有下拉列表给予相同优先级的解决方案。我想@Melvin的答案就是这样的,但当你试图改变答案时,它并不能正常工作。嗯…@LBF根据您的要求添加了一个不同的方法。谢谢。我希望找到一种不用重置按钮的方法,但我明白为什么这是必要的。如果您试图返回并更改您的答案,而没有注意到您必须重置,那么这会有点混乱。
$('select').on('change', function () {
$("select").find("option").removeAttr("disabled");
$("select").not(this).find("option[value=" + $(this).val() + "]").attr("disabled", "disabled");
});