【问题标题】:How to check whether a select box is empty using JQuery/Javascript如何使用 JQuery/Javascript 检查选择框是否为空
【发布时间】:2012-06-17 20:57:44
【问题描述】:

我有一个从数据库动态填充的选择框。截至目前,此复选框的用户运行良好。

我添加了一个包含一个按钮的功能,单击该按钮会调用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
    }
}

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    检查所选值是否为空:

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

    【讨论】:

    • 我将答案授予您,因为您在 Claudio 之前就答对了,但实际上 Claudio 在您做对的几秒钟后也答对了...谢谢你们俩!我希望我能平分奖励。
    • 后面的代码不正确。事实上,如果你用一个选择框尝试它,你会收到 null 作为 val(),但 @if( !$('#fruit_name').val() )@ 返回 TRUE。
    • 好吧,我正试图取消我的反对票,因为这是正确的,但 stackoverflow 不会让我这样做。很蹩脚。很抱歉投了反对票,应该是赞成票。
    • @Engineer 感谢您的出色回答,我一直在寻找...
    【解决方案2】:

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

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

    然后你应该这样做

    if(selected_value) { ... }
    

    【讨论】:

      【解决方案3】:

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

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

      最适合你!

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        • 这个问题的确切答案已经给出。
        • 正确,这与上面的答案类似,但您应该将#id 更改为#fruit_name
        猜你喜欢
        • 2014-04-18
        • 2022-12-04
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多