我有两个选择元素。两者选择具有相同的值。当我从1个选择框中选择选项时,应该从第二个选择框中禁用所有先前的选择选项。假设我有以下选择:
<select id="s1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select id="s2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
如果我从s1框中选择值3,则应该从s2 select中禁用所有先前的选项。如果我从s1中选择值2,则应禁用s2中的所有先前值。
注意:不应禁用下一个值,而只能禁用前一个值。我正在寻找jquery
解决方案。
使用:lt
以选择具有比指定的较小的索引元素。
.index()
将从匹配的元素返回元素的位置。
.not()
将从返回的元素中排除指定的元素。
$('select').change(function() {
$('select option').prop('disabled', false);
var index = $(this).find('option:selected').index();
$('select').not(this).find('option:lt(' + index + ')').prop('disabled', true);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select id="s1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select id="s2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句