如何检查使用jquery检查的多个复选框?

时间:2013-04-23 05:37:24

标签: php javascript jquery

我是jquery的新手,很有意思,但我有一点问题, 我正在使用像这样的foreach循环从数据库中填充多个复选框,

<? foreach($cities as $city) { ?>
    <input type="checkbox" name="city[]" value="<?=$city->id?>" id="city[]" />
<? } ?>

我想限制用户检查至少一个复选框,我知道如何只使用一个复选框,但在jquery中与这种数组混淆,任何帮助将不胜感激! 非常感谢提前!

5 个答案:

答案 0 :(得分:12)

要查找检查了多少个复选框,您可以使用以下内容:

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为0,checkedNum传递,因为0为假。任何其他数字都是真实的,并且不满足条件!checkedNum


<强>参考文献:

答案 1 :(得分:2)

如果您想要选中至少一个复选框,则可以使用此

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。如果是,则显示错误。

答案 2 :(得分:0)

假设您有#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
});

遍历所有复选框并检查它们是否被选中。

答案 3 :(得分:0)

首先,id个复选框应该是唯一的。

这样做

<? 
$checkBoxCount = 0;
foreach($cities as $city) { ?>
    <input type="checkbox" name="city[]" value="<?=$city->id?>" id="chkbox-<?=$checkBoxCount?>" />
<? } ?>

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

var checkCount = $("input[name='city[]']:checked").length;

if(checkCount == 0)
{
   alert("Atleast one checkbox should be checked.");
}

答案 4 :(得分:0)

这段代码对我很有用,我在这里用

将数组转换为字符串
DipPegawai.objects.filter(PegUnitKerja=3).values_list.('pegnamalengkap', 'diphonorkegiatanpeg_kegnama')