在下拉选择中禁用某些选项

时间:2017-09-11 03:52:29

标签: javascript jquery html

需要禁用选项“5”&选择选项值“2”时为“6”。选择选项“1”时,它应显示List_2中的所有选项。我怎么能用jQuery或任何其他方法做到这一点。

if ($('option[value=2]').prop('selected', true)) {
      $('option[value=5]').prop('disabled', true);
    }
<HTML>
    <body>

      <select id= "List_1">
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
    
    </select>

    <select id= "List_2">
      <option value="4">Option 4</option>
      <option value="5">Option 5</option>
      <option value="6">Option 6</option>
    </select>

</body>
</HTML> 

2 个答案:

答案 0 :(得分:2)

您可以使用解决方案https://jsfiddle.net/eurbvzk1/

var disabledDic = {
  "1" : ["6"],
  "2" : ["4", "5"],
  "3" : []
}

$('select#list_1').on('change', function(){
  $('select#list_2 option').each(function(){
    $(this).removeAttr('disabled');
  });
  
 var disableOption = disabledDic[$(this).val()];
  $.each( disableOption, function(i){
    $('option[value="' + disableOption[i] + '"]').prop('disabled', 'disabled');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="list_1">
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 2</option>
</select>

<select id= "list_2">
  <option value="4">Option 4</option>
  <option value="5">Option 5</option>
  <option value="6">Option 6</option>
</select>

创建一个字典,其中包含每个第一个选择选项作为键和&amp; value将是第二个列表中已禁用选项的列表。

Onchange方法检查词典&amp;循环显示禁用的值。

希望这会对你有所帮助。

答案 1 :(得分:1)

用简单的JS:

document.getElementById('List_1').onchange = function() {

  document.getElementById('List_2')[1].disabled = (document.getElementById('List_1').selectedIndex == 1);
  document.getElementById('List_2')[2].disabled = (document.getElementById('List_1').selectedIndex == 1);
}
<select id="List_1">
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>

</select>

<select id="List_2">
  <option value="4">Option 4</option>
  <option value="5">Option 5</option>
  <option value="6">Option 6</option>
</select>