如果所选值使用 jquery 匹配,则禁用下拉列表中的选项
Disable options in drop-down if selected value matches using jquery
我有一个包含重复值的下拉列表。现在我想禁用与所选值匹配的选项。
为什么要用重复的值填充下拉列表?那只是令人困惑。
如果您出于任何原因需要在下拉列表中包含重复值。请更详细地解释原因,也许可以举个例子。
如果您不需要重复值,那么您应该在填充下拉列表
之前明确地整理出重复值
使用 .prop('disabled',true);
元素可以被禁用。请查看下面的代码片段以了解如何禁用具有相同值的所有其他选项。
$('#duplicate').on('change',function(){
$(this).find('option').prop('disabled',false);
$(this).find('option[value="'+$(this).val()+'"]').prop('disabled',true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="duplicate">
<option value="">select</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='1'>1</option>
<option value='1'>1</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='3'>3</option>
</select>
我有一个包含重复值的下拉列表。现在我想禁用与所选值匹配的选项。
为什么要用重复的值填充下拉列表?那只是令人困惑。
如果您出于任何原因需要在下拉列表中包含重复值。请更详细地解释原因,也许可以举个例子。
如果您不需要重复值,那么您应该在填充下拉列表
之前明确地整理出重复值使用 .prop('disabled',true);
元素可以被禁用。请查看下面的代码片段以了解如何禁用具有相同值的所有其他选项。
$('#duplicate').on('change',function(){
$(this).find('option').prop('disabled',false);
$(this).find('option[value="'+$(this).val()+'"]').prop('disabled',true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="duplicate">
<option value="">select</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='1'>1</option>
<option value='1'>1</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='3'>3</option>
</select>