如何检查使用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应该是唯一的。

这样做

    

现在在jQuery中检查这样就可以获得所有选中的复选框。

 var checkCount = $("input[name='city[]']:checked").length; if(checkCount == 0) { alert("Atleast one checkbox should be checked."); } 

这段代码对我很有用,这里我用#转换数组到字符串

  Created Submit