如果所有复选框都未勾选,则警告用户
问题描述:
我有一系列复选框。如果所有复选框都未选中,我想在用户提交后提醒用户。我正在使用以下代码来报告复选框的所有值:如果所有复选框都未勾选,则警告用户
$('[id^=leg_rider]').filter(':checked');
这似乎工作。但是,当我尝试检查返回的对象是否为空时,它似乎不起作用。这是我想要的:
$("#set_pref_submit").click(function() {
var legchecked = $('[id^=leg_rider]').filter(':checked');
if (!legchecked){ alert("no riders")};
});
任何建议表示赞赏。谢谢!
答
if (legchecked.size() == 0){ alert("no riders")};
答
工作演示: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');
}
});
答
上线
if (!legchecked){ alert("no riders")};
你实际上是在检查对象的存在,而不是是否是空的。由于您使用的是jQuery,因此您可以使用.isEmptyObject()函数来检查对象是否为空。
if($.isEmptyObject(legchecked)) {alert ("no riders")};
答
试试这个:
我的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
您正处在正确的轨道上。只要使用:if(jQuery(“。checkbox:checked”)。length == 0),或者用你的代码:if(jQuery(“[id^= leg_rider]:checked”)。length == 0){alert( )} – ShaunOReilly 2012-08-03 00:24:26