检查是否选择了选项 - 有多个选择

时间:2014-02-25 18:34:28

标签: javascript jquery select

我在一个页面上有多个选择。我需要检查它们,并检查是否选择了一个选项。

所以基本上我需要一些jquery / js: 如果每个选择都选择了一个选项,那么......其他......

现在我有了“

   if($('.container select').val()){
     //Do stuff
        } else {
      // Do something else 
    }

问题是:此代码仅检查页面上的第一个选择,我需要全部检查它们!

有人可以帮忙吗?

4 个答案:

答案 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>