如果所有复选框都未被选中,则警告用户。

8

我有一个带有一系列复选框的表单。当用户提交后,如果所有复选框都未被选中,我想要发出警告。我正在使用以下代码报告所有复选框的值:

$('[id^=leg_rider]').filter(':checked');

这个看起来可以工作。但是,当我尝试检查返回的对象是否为空时,似乎不起作用。这是我尝试的代码:

        $("#set_pref_submit").click(function() {
        var legchecked = $('[id^=leg_rider]').filter(':checked');
        if (!legchecked){ alert("no riders")};
    });

欢迎提出任何建议,感谢!


你走在正确的道路上。只需要使用:if (jQuery(".checkbox:checked").length == 0),或者使用你的代码:if (jQuery("[id^=leg_rider]:checked").length == 0) { alert() } - ShaunOReilly
5个回答

13
您可以使用 jQuery 对象的 length 属性:
$("#set_pref_submit").click(function() {
    var legchecked = $('input[id^=leg_rider]:checked').length;
    if (legchecked){ alert("no riders")};
});

5

工作演示http://jsfiddle.net/MrkfW/

试一试:使用.change API,这样它就可以跟踪:)

API: http://api.jquery.com/change/

$("input[type='checkbox'][id^=leg_rider]").change(function(){
    var a = $("input[type='checkbox'][id^=leg_rider]");
    if(a.length == a.filter(":checked").length){
        alert('all checked');
    } else {
        alert('not all checked');
    }
});

@FrançoisWahl 谢谢兄弟!:) 你知道这件事会被铭记的。B-) - Tats_innit

2

试试这个:

我的 HTML 代码:

<input id="chkbx_0" type="checkbox" class="checkbox" name="c_n_0" checked="checked" />Option 1
<br/><input id="chkbx_1" type="checkbox" class="checkbox" name="c_n_1" />Option 2
<br/><input id="chkbx_2" type="checkbox" class="checkbox" name="c_n_2" />Option 3
<br/><input id="chkbx_3" type="checkbox" class="checkbox" name="c_n_3" checked="checked" />Option 4
<br/><br/>
<input type="button" value="Click me" class="testall"/>

我的 JQuery 代码:

jQuery(".testall").click(function () {
    if (jQuery(".checkbox:checked").length == 0) { alert("no riders"); }
});

实例演示: http://jsfiddle.net/webwarrior/NJwv4/9/

这将使您只能选择某些复选框。

希望对您有所帮助,Shaun


0
if (legchecked.size() == 0){ alert("no riders")};

0

在代码行上

if (!legchecked){ alert("no riders")};

你实际上是在检查对象是否存在,而不是它是否为空。由于你正在使用jQuery,你可以使用.isEmptyObject()函数来检查对象是否为空。

if($.isEmptyObject(legchecked)) {alert ("no riders")};

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