37

我有一个从数据库动态填充的选择框。截至目前,此复选框的人口工作完美无缺。

我添加了一个由点击调用的按钮组成的功能isSelextBoxEmpty。这个函数的工作是知道这个特定的复选框是否已经被填充;如果它没有,那么它将什么也不做。

我的问题是确定此选择框是否为空。

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

<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
    }
}

不要担心这是做什么以及它是如何做到的。现在对我来说重要的是我无法检查复选框是否为空,我只是不知道该怎么做。我通过论坛和文档阅读了很多,但是这样做有很多含义,因为它取决于实现本身。

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

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

4

4 回答 4

98

检查选择框是否有任何值:

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

检查所选值是否为空:

if( !$('#fruit_name').val() ) { 
于 2012-06-14T19:06:23.937 回答
13

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

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

然后你应该做

if(selected_value) { ... }
于 2012-06-14T19:04:27.507 回答
2

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

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

最适合你!

于 2014-03-25T19:21:07.710 回答
0

检查这个答案,它经过测试并且运行良好

if( !$('#id').val() ) {
   // stuff here
}
于 2021-04-13T09:22:49.487 回答