如何使用JQuery / Javascript检查选择框是否为空

时间:2012-06-14 19:01:14

标签: javascript jquery html jquery-mobile jquery-selectbox

使用JQuery Mobile我有一个从数据库动态填充的选择框。截至目前,此复选框的人口正在完美运行。我添加了一个功能,其中包含一个通过“点击”事件调用功能的按钮。此功能的作用是知道是否已填充此特定复选框;如果它没有那么它根本不会做任何事情,但否则它会顺利运行。我的问题是确定这个选择框是否为空。

这是我正在处理的一个非常简化的例子:

<li>
    <label for="fruit_name">Fruit</label>
    <select name="some_fruit" id="fruit_name" onclick="populate_box('fruit', this);">
    </select>
</li>

我的功能,从一个单独的按钮调用,如下所示:

function isSelextBoxEmpty(selectBoxId) {
    var selected_value = $('#fruit_name');

    /* More options... still testing the proper way:
    var selected_value = $('#fruit_name').text;
    var selected_value = $('#fruit_name').value;
    var selected_value = $('#fruit_name').length;
    var selected_value = $('#fruit_name option:selected', this);
    var selected_value = document.getElementById('fruit_name');
    var selected_value = document.getElementById('fruit_name').length;
    var selected_value = document.getElementById('fruit_name').value;
    var selected_value = document.getElementById('fruit_name').innerHTML;
    */

    if(selected_value) {
        alert("NOT null, value: " + selected_value);
        //do something
    }
    else {
        alert("null, value: " + selected_value);
        //do something
    }
}

不要担心这样做以及它是如何做到的。现在重要的是我无法检查复选框是否为空,我只是不确定如何去做。我通过论坛和文档阅读了很多内容,但这样做有很多含义,因为它取决于实现本身。

例如,使用document.getElementById(...)...不一定会返回false,这取决于您如何使用它。在jQuery中使用$("#someID")...可能会也可能不会产生所需的结果。我已经尝试了许多不同的时间,你可以在注释行中看到,所有这些都可以在if(...)语句中进行评估。

您对如何实现这一目标有什么建议或想法吗?提前谢谢!

4 个答案:

答案 0 :(得分:73)

检查选择框是否包含任何值:

if( $('#fruit_name').has('option').length > 0 ) {

检查所选值是否为空:

if( !$('#fruit_name').val() ) { 

答案 1 :(得分:11)

获得所选值的一种正确方法是

var selected_value = $('#fruit_name').val()

然后你应该做

if(selected_value) { ... }

答案 2 :(得分:2)

获取所选值的另一种正确方法是使用此选择器:

$("option[value="0"]:selected")

最适合你!

答案 3 :(得分:0)

检查此答案是否经过测试且运行良好

if( !$('#id').val() ) {
   // stuff here
}