2012-08-02 59 views
5

我有一系列复选框。如果所有复选框都未选中,我想在用户提交后提醒用户。我正在使用以下代码来报告复选框的所有值:如果所有复选框都未勾选,则警告用户

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

这似乎工作。但是,当我尝试检查返回的对象是否为空时,它似乎不起作用。这是我想要的:

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

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

+0

您正处在正确的轨道上。只要使用:if(jQuery(“。checkbox:checked”)。length == 0),或者用你的代码:if(jQuery(“[id^= leg_rider]:checked”)。length == 0){alert( )} – ShaunOReilly 2012-08-03 00:24:26

回答

10

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

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

+1长度':)' – 2012-08-02 23:57:27

+2

+1提到长度属性。 – Nope 2012-08-03 00:11:05

+1

+10 upvotes非常感谢 – 2015-12-17 12:08:23

0
if (legchecked.size() == 0){ 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'); 
    } 
}); 
+2

+1改变':)' – undefined 2012-08-02 23:58:30

+1

+1改变和演示 – Nope 2012-08-03 00:10:40

+0

@FrançoisWahl谢谢布鲁夫! ':''你知道你会被记住这个。 'B-)' – 2012-08-03 00:11:57

0

上线

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

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

if($.isEmptyObject(legchecked)) {alert ("no riders")}; 
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/

这个Wi会给你选择只检查某些复选框。

hth,Shaun

相关问题