计算使用 jquery 检查的 html 复选框的数量

Posted

技术标签:

【中文标题】计算使用 jquery 检查的 html 复选框的数量【英文标题】:calculate the number of html checkbox checked using jquery 【发布时间】:2010-12-29 18:16:27 【问题描述】:

如何计算用户使用 jquery 选中的复选框数量?

我想要做的是将表单中复选框的检查次数限制为 10 个,例如,当用户超出此范围时会显示警告消息。

【问题讨论】:

How to get a count of all checked checkboxes on a page 的可能重复项 【参考方案1】:

有多种方法可以做到这一点:

方法一:

alert($('.checkbox_class_here:checked').size());

方法二:

alert($('input[name=checkbox_name]').attr('checked'));

方法:3

alert($(":checkbox:checked").length);

【讨论】:

很好的答案,但您不应该使用 .checkbox_id_here 而不是 #checkbox_id_here 吗?如果您使用#checkbox_id_here,size() 将始终为 1,这将毫无意义,因为只能有一个唯一 ID。改为引用类是有意义的,其中可以有多个复选框 alert($('.pairing-cbk :checked').size()); 没有工作,但 alert($('.pairing-cbk:checked').size()); 工作由于上述@James Wiseman 提到的原因 值得注意的是 alert($('input[name=checkbox_name]').attr('checked'));选中复选框时警报“已选中”,如果未选中则警报“未定义”。它没有按照 OP 的要求给出复选框的“计数”。因此,虽然方法 1 和 3 有效,但不幸的是,方法 2 不起作用。【参考方案2】:

这应该可行:

alert($("input:checkbox:checked").length);

【讨论】:

$("input:checkbox :checked").length;复选框和 :checked 之间有空格不起作用,这发生在我身上。 那是因为它会寻找 input:checkbox 的后代 checked,而不是寻找自己检查的 input:checkbox。该空间规定了祖先/后代关系。 感谢您的意见,我实际上并不知道。【参考方案3】:

如果以上方法都不起作用,你可能还没有导入 jQuery。 要导入 jQuery,请将此代码粘贴到 html<head> 中。

<script src="//code.jquery.com/jquery-1.10.2.js"></script>

我在创建产品订购页面时实际上遇到了同样的问题,我希望它在订单确认页面计算购物车中的产品数量。我参考了这篇文章并尝试了所有方法。然后我发现我没有导入jQuery,所以$(':checkbox:checked')不起作用。

【讨论】:

【参考方案4】:

你应该使用

alert($("input:checkbox:checked").length);

alert($(".checkbox-class:checked").length);

如果您在一页上有更多表单

.size()(当前接受的答案中的方法号 1)自 jQuery 1.8 起已弃用

【讨论】:

以上是关于计算使用 jquery 检查的 html 复选框的数量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 检查复选框? [复制]

如何使用表单验证 jquery 检查至少一个选中的复选框?

使用jquery检查复选框时如何更新数据库?

检查是不是使用 jQuery 勾选了复选框:不同的方法? [复制]

Jquery单击检查最近的复选框

只允许使用 jQuery 检查同一 div 中的复选框