检查所有下拉列表是否为空或jQuery

时间:2015-03-12 04:05:43

标签: javascript jquery

我有三个select元素:

            <select id="first">
                <option></option>
                <option value="a">a</option>
                <option value="b">b</option>
                <option value="c">c</option>
            </select>
            <select id="second">
                <option></option>
                <option value="d">d</option>
                <option value="e">e</option>
                <option value="f">f</option>
            </select>
            <select id="three">
                <option></option>
                <option value="g">g</option>
                <option value="h">h</option>
                <option value="i"></option>
            </select>

所有这三个必须为空(第一个选项)或具有值。

所以<option></option> <option></option> <option></option>没问题

但不是<option value="a">a</option> <option></option> <option></option>有点事。

我已经尝试了这个,但它没有工作,因为它不允许所有三个都为空并退出第一个案例

if($("#first").val() === "" || $("#second").val() === "" || $("#third").val() === ""){
    return false;
}

有任何帮助吗?我想尽可能短/好看

3 个答案:

答案 0 :(得分:5)

你可以

var $selects = $('#first, #second, #three'),
    $selected = $selects.filter(function () {
        return this.value != ''
    });
if ($selected.length != 0 && $selected.length != $selects.length) {
    return false;
}

演示:Fiddle

答案 1 :(得分:1)

var first = $("#first").val();
var second = $("#first").val();
var three = $("#first").val();
var isValid = false;

if((first.length>0 && second.length>0 && three.length>0) || (first.length==0 && second.length>== && three.length==0)){
    isValid = true;
}

答案 2 :(得分:0)

试试这个:

if($("#first").find('option').length <=1 || $("#second").find('option').length <=1 || $("#third").find('option').length <=1){
return false;
}