我是jquery的新手,很有意思,但我有一点问题, 我正在使用像这样的foreach循环从数据库中填充多个复选框,
<? foreach($cities as $city) { ?>
<input type="checkbox" name="city[]" value="<?=$city->id?>" id="city[]" />
<? } ?>
我想限制用户检查至少一个复选框,我知道如何只使用一个复选框,但在jquery中与这种数组混淆,任何帮助将不胜感激! 非常感谢提前!
答案 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
。
<强>参考文献:强>
:checked
选择器:http://api.jquery.com/checked-selector/ .length
属性:http://api.jquery.com/length/ 答案 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')