如何使用jQuery检查下拉菜单是否具有值?

10

最好的方法是检查下拉菜单是否包含非空值。

 <select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled">
    <option value=""></option>
</select> 

如何检查上述下拉菜单不包含任何值?


是否包含无值(没有value=""的<option>元素),或者没有选择任何值? - Anders Arpi
4个回答

15
if($('.dropinput > option[value!=""]').length == 0) {
    //dropdown contains no non-null options
}

这将检查选择框中是否包含零个选项,这些选项的值不同于“”(空)。

因此,以上jQuery中将看到以下HTML为空:

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled">
    <option value=""></option>
</select> 

以下 HTML 不会 被认为是空的:

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled">
    <option value=""></option>
    <option value="some value"></option>
</select> 

JSFiddle演示


2

尝试这个

只有在它有值的情况下,这才会给你一个值。

$("#dropFinish1 option:selected[value!=""]).val()

这段代码运行得非常好,只是缺少一个逗号,所以应该写成 $("#dropFinish1 option:selected[value!=""]").val() - luke_mclachlan

2

您的意思是:


var hasOption = true;
$('.dropinput option').each(function(i, v){    
    var $this = $(this);        
    if($this.val() == '' || $this.size < 1) {
        hasOption = false;
    } else {
        hasOption = true;
    }        
});

这段代码的作用是遍历一个下拉框中的选项,判断是否至少有一个选项被选择。如果存在一个或多个选项,则hasOption变量将设置为true,否则它将被设置为false。

0
$('.dropinput').text();

如果返回的是"",意味着没有选择任何内容。
var selectedItem = "";
$('.dropinput option').each(function(){
if($(this).attr('selected') == 'selected'){
selectedItem = $(this).val();
}
}):

如果变量保持为空,则意味着未选择任何项目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接