如何检查使用jquery检查的多个复选框?
我是jquery的新手,这很有意思,但我有一点问题,我正在使用foreach循环从数据库填充多个复选框,如下所示,
<input type="checkbox" name="city[]" value="id?>" id="city[]" />
我想限制用户检查至少一个复选框,我知道如何只用一个复选框,但在jquery中与这种数组混淆,任何帮助将不胜感激! 提前谢谢了!
要查找检查了多少个复选框,您可以使用以下内容:
var checkedNum = $('input[name="city[]"]:checked').length; if (!checkedNum) { // User didn't check any checkboxes }
由于您为所有复选框(从PHP循环)提供相同的name
属性,因此您可以使用选择器input[name="city[]"]
来定位并查找所有复选框。 但要查明具体检查的数量 ,可以添加:checked
选择器。 另一种方法是使用$('input[name="city[]"]').filter(":checked")
。
最后, !checkedNum
只有在checkedNum
为0时才会通过,因为0是假的。 任何其他数字都是真实的,并且不满足条件!checkedNum
。
参考文献:
- jQuery属性等于选择器: http : //api.jquery.com/attribute-equals-selector/
-
:checked
选择器: http : //api.jquery.com/checked-selector/ - jQuery
.length
属性: http : //api.jquery.com/length/
如果您希望至少选中一个复选框,则可以使用此选项
var somethingChecked = false; $("input[type=checkbox]").each(function() { if(this).is(':checked')) { somethingChecked = true; } }); if(!somethingChecked) { alert("You haven't checked anything yet"); }
这样做是将变量初始化为false。 然后脚本循环遍历所有类型复选框的输入。 如果选中该项,请将变量设置为true。 最后,检查变量是否仍为false。 如果是,则显示错误。
假设你有#my_form
作为表单的ID,你可以这样做
$("#my_form input[type=checkbox]:checked"). // ... do something
使用选中的复选框选择并执行某些操作。 你也可以这样做
$("#my_form input[type=checkbox]").each(function(idx, elem) { var is_checked = $(this).prop("checked"); // Do something with is_checked });
迭代所有复选框并检查它们是否被选中。
首先,复选框的id
应该是唯一的。
这样做
$checkBoxCount = 0; foreach($cities as $city) { ?> } ?>
现在在jQuery中检查这样就可以获得所有选中的复选框。
var checkCount = $("input[name='city[]']:checked").length; if(checkCount == 0) { alert("Atleast one checkbox should be checked."); }
这段代码对我很有用,这里我用#转换数组到字符串
Created Submit