2016-03-01 108 views
0

我有两个选择元素与一些选项。我想要做的就是用jquery处理这个问题,以便只有当选项有值时才可以获取它们的值。多个选择元素 - 从jQuery中选择一个选项时处理

<div class="panel-heading"> 
     <select id="loading-by-tag"> 
      <option value="" disabled selected> -- Select Subject --</option> 
      <option value="value1">Selection 1</option> 
      <option value="value2">Selection 2</option> 
     </select> 

     <select id="loading-by-sub-tag"> 
      <option value="" disabled selected> -- Select Subject --</option> 
      <option value="value1">Selection 1</option> 
      <option value="value2">Selection 2</option> 
     </select> 
    </div> 

如果我想用一个select元素只处理我用.on('change', function()与选择元素和它的作品,但有多个选择元素我怎么能做到这一点。

回答

3

您应该检查selectedIndex是不是0您的所有select元素。

$(document).on('change', 'select', function() { 
 
    var allChanged = true; 
 

 

 
    // check if there is any other select element which was not changed 
 
    $('select').each(function() { 
 
     if (this.selectedIndex == 0) { 
 
      allChanged = false; 
 
     } 
 
    }); 
 

 
    // if all select elements have been changed 
 
    if (allChanged) { 
 
     alert('BOTH CHANGED'); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="panel-heading"> 
 
     <select id="loading-by-tag"> 
 
      <option value="" disabled selected> -- Select Subject --</option> 
 
      <option value="value1">Selection 1</option> 
 
      <option value="value2">Selection 2</option> 
 
     </select> 
 

 
     <select id="loading-by-sub-tag"> 
 
      <option value="" disabled selected> -- Select Subject --</option> 
 
      <option value="value1">Selection 1</option> 
 
      <option value="value2">Selection 2</option> 
 
     </select> 
 
    </div>

+0

非常感谢你:) –

1

只是一个侧面说明,使用.filter()

$('select').change(function() { 
    var m = $(this).siblings('select').addBack(); 
    var n = m.filter(function(){ 
    return $(this).val() == null && $(this) 
    }); 
if (!n.length) alert('both selected') 
}); 

DEMO

+0

很好的解决。谢谢:) –

+0

不客气的队友 –

相关问题