我有一个类似在这里问了一个问题禁用:jQuery <select> option disabled if selected in other <select>jQuery的<select>选项,如果在多个选定<select>箱
但是,我的变化中,将有两个以上的选择框。在提供的答案中,当选择一个选项时,它被设置为在其他选择框(我想要发生)中禁用,但我不希望在不同的选择框中选择任何其他选项禁用删除。
这有道理吗?
HTML示例:
<div>
<select name="homepage_select_first">
<option>No Match</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
</div>
<div>
<select name="homepage_select_second">
<option>No Match</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
</div>
<div>
<select name="homepage_select_third">
<option>No Match</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
</div>
而jQuery的:
$('select[name*="homepage_select"]').change(function() {
var value = $(this).val();
alert(value);
$('select[name*="homepage_select"]').children('option').each(function(){
if ($(this).val() === value) {
$(this).attr('disabled', true)//.siblings().removeAttr('disabled');
}
});
});
注释掉.siblings().removeAttr('disabled')
根本不会删除禁用的属性...但是,我想删除它,只有当它是不在任何一个选择框中选择。
基本上,我只想要一次选择一个选项。我认为,如果我只能在.removeAttr('disabled')
这个刚刚更改的项目上工作,我认为这是可行的。但是,我不知道如何去做这件事。
有没有人有任何想法?
谢谢!
让我得到这个直 - 所有你选择的元素将开始没有残疾人属性,那么一旦选择了一个,它就会添加禁用属性。如果选择了另一个选择元素,则以前的元素应该删除禁用的属性,并且当前的元素将被禁用?我有这个权利吗? – 65Fbef05
不太可能 - 比方说,homepage_select_first选择了选项值1,homepage_select_second选择了选项值3 - 这两个选项都应该在homepage_select_third中禁用。但是,如果我在homepage_select_first中更改了自己的选择内容,则应该在其他两项中反映出来,但是值3应该保持禁用状态,因为它已在homepage_select_second中选定。 – iddimu
好的,所以我们的目标是防止选择三个选择元素之间的重复选项? – 65Fbef05