我在一个页面上有多个选择。我需要检查它们,并检查是否选择了一个选项。
所以基本上我需要一些jquery / js: 如果每个选择都选择了一个选项,那么......其他......
现在我有了“
if($('.container select').val()){
//Do stuff
} else {
// Do something else
}
问题是:此代码仅检查页面上的第一个选择,我需要全部检查它们!
有人可以帮忙吗?
答案 0 :(得分:2)
你必须全部抓住它们,检查它们的值并根据显示的条件返回。您可以在$ .each循环中执行此操作:
var valid = true;
$('.container select').each(function () {
//if (!$(this).children('option:selected').length) { // you can do this instead of this.value if you want.
if (!this.value) {
valid = false;
return false; // this will cause the each loop to exit, instead of continue
}
});
if (valid) {
// process valid logic
}
else {
// process invalid logic
}
答案 1 :(得分:2)
您可以使用:
if(!$('.container option:selected[value=""]').length){
/* All SELECT have one option selected*/
}
else {
/* At least one SELECT has no option selected */
}
请注意,所有选项都必须定义属性值,否则content选项将用作值。因此,对于默认选项,请使用例如:
<option value="">-- No Selection --</option>
答案 2 :(得分:0)
try this:
ss = document.getElementById('multiple_select_id');
for (var i=0; i<ss.options.length; i++) {
if (ss.options[i].selected) {
console.log(ss.options[i].value + " is selected");
} else {
console.log(ss.options[i].value + " is not selected");
}
}
答案 3 :(得分:0)
如果有多个选择框
<select name="demo[]" id="demo" multiple>
<option value="a">A</option>
<option value="b">B</option>
</select>
<script>
$('#demo').on('change', function(){
if($('#demo option:selected').length == $('#demo option').length)
{
alert('Congrats! you have selected all options');
}
else
{
alert('Nah! some options still remain unselected');
}
});
</script>