8

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

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

这似乎有效。但是,当我尝试检查返回的对象是否为空时,它似乎不起作用。这就是我正在尝试的:

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

任何建议表示赞赏。谢谢!

4

5 回答 5

13

您可以使用 jQuery 对象的length属性:

$("#set_pref_submit").click(function() {
    var legchecked = $('input[id^=leg_rider]:checked').length;
    if (legchecked){ alert("no riders")};
});
于 2012-08-02T23:56:24.740 回答
5

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

试试这个:也使用 .change 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');
    }
});
于 2012-08-02T23:56:16.030 回答
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/

这将使您可以选择仅选中某些复选框。

hth,肖恩

于 2012-08-03T00:11:29.410 回答
0
if (legchecked.size() == 0){ alert("no riders")};
于 2012-08-02T23:56:01.793 回答
0

在线上

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

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

if($.isEmptyObject(legchecked)) {alert ("no riders")};
于 2012-08-02T23:59:03.220 回答