我有几个选择元素:
<select id='foo1'>
<option value=''></option>
<option value='foo'>asdf</option>
<option value='bar'>asdfasdf</option>
</select>
<select id='foo2'>
<option value=''></option>
<option value='foo'>asdf</option>
<option value='bar'>asdfasdf</option>
</select>
<select id='foo3'>
<option value=''></option>
<option value='foo'>asdf</option>
<option value='bar'>asdfasdf</option>
</select>
有没有一种简单的方法可以检查每个人是否选择了不是第一个空值的任何值,而无需使用循环或jQuery each方法?我可以使用循环来做到这一点,但我宁愿使用单个选择器。
$("[id^=foo]").val();
可悲的是不起作用。有没有简单的方法可以用jQuery在1行代码中做到这一点,还是我必须编写一个循环或使用.each?
最佳答案
您可以使用:
if($('[id^=foo] [value=""]:selected').length === 0)
//All selects have a value
$('select').change(function(){
if($('[id^=foo] [value=""]:selected').length === 0)
alert('all are selected');
else
alert('At least one is not selected');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id='foo1'>
<option value=''></option>
<option value='foo'>asdf</option>
<option value='bar'>asdfasdf</option>
</select>
<select id='foo2'>
<option value=''></option>
<option value='foo'>asdf</option>
<option value='bar'>asdfasdf</option>
</select>
<select id='foo3'>
<option value=''></option>
<option value='foo'>asdf</option>
<option value='bar'>asdfasdf</option>
</select>
关于jquery - 如何检查多个选择元素(*不是*多重选择)是否具有值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27190804/