javascript - 忽略多个选择框-jquery中的第一个选项

标签 javascript jquery jquery-selectors

我有多个具有相同选项但互斥的选择框。例如,如果选择框 A 和选择框 B 有选项 1、选项 2 和选项 3,那么如果我为选择框 A 选择选项 1,那么它应该不可用在选择框 B 上

我的示范

<select name="select" class="alert_type">
        <option selected disabled>Select below</option>
        <option value="1">option1</option>
        <option value="2">option2</option>
        <option value="3">option3</option>
        <option value="4">option4</option>
    </select>
    <select name="select" class="alert_type">
        <option selected disabled>Select below</option>
        <option value="1">option1</option>
        <option value="2">option2</option>
        <option value="3">option3</option>
        <option value="4">option4</option>
    </select>
    <select name="select" class="alert_type">
        <option selected disabled>Select below</option>
        <option value="1">option1</option>
        <option value="2">option2</option>
        <option value="3">option3</option>
        <option value="4">option4</option>
    </select>

 $('.alert_type').change(function() { 
                           var selected_value=$(this).val();
                          $(".alert_type option[value='" + selected_value + "']").not(this.selectedOptions[0]).hide();

                          }); 

但我想将第一个选项作为异常(exception),即 <option value="">Select below</option>因为我需要灵活地恢复所有选项

您可以在下面的 fiddle 上看到,如果我从选择框 1 中选择选项 1,则选项 3 中的“选择下方”也会被删除,我想将其置于异常(exception)状态 fiddle https://jsfiddle.net/timus2001/rbuyk7na/3/

当我尝试

$(".alert_type option").show();

首先显示所有不再互斥(见图片) enter image description here

最佳答案

好的。让我看看这次能不能抓到你:

 $('.alert_type').change(function() { 
	var selected_values = [],
  		iteration;
  $(".alert_type option").show();
  $(".alert_type").each(function(){
  	iteration = $(this).find('option:selected').val();
    if ( iteration !== "" ) {
    	selected_values.push( iteration );
    } 	
  })
  for ( var i = 0; i < selected_values.length; i++ ) {
  	$(".alert_type option[value='"+ selected_values[i] +"']").hide();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="select" class="alert_type">
        <option selected>Select below</option>
        <option value="1">option1</option>
        <option value="2">option2</option>
        <option value="3">option3</option>
        <option value="4">option4</option>
    </select>
    <select name="select" class="alert_type">
        <option selected>Select below</option>
        <option value="1">option1</option>
        <option value="2">option2</option>
        <option value="3">option3</option>
        <option value="4">option4</option>
    </select>
    <select name="select" class="alert_type">
        <option selected>Select below</option>
        <option value="1">option1</option>
        <option value="2">option2</option>
        <option value="3">option3</option>
        <option value="4">option4</option>
    </select>

关于javascript - 忽略多个选择框-jquery中的第一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42215704/

相关文章:

javascript - Highcharts - 使用选定的饼图切片获得 3d 效果

javascript - 无法将脚本文件加载到另一个脚本文件中

javascript - 如何使用angularjs json数据为选择2下拉菜单设置默认值

javascript - 我无法选择使用 jquery 动态创建的 html 元素

javascript - GetElementsByTagName 不适用于 XML

javascript - 如何用JS选择所有标签元素

javascript - Ajax:多次提交后防止刷新页面

javascript - "$"符号在 jQuery 或 JavaScript 中意味着什么?

javascript - 可选的 div 背景颜色

javascript - jQuery 选择器转义冒号 ":"在 IE 中有效,但在其他地方不起作用