计算已检查的复选框数量

时间:2015-02-10 17:04:32

标签: javascript jquery

我使用以下代码检查已检查的复选框用户数。

var empty_watch = $('#clocks').find('input.checkbox:checked').length;

这用于表单验证:如果empty_watch为0,则不发布表单:用户必须至少选择一个项目(并且没有默认项目。)

HTML如下:

<div id="clocks" class="sez-form">
<fieldset>
<legend> Orologi inclusi </legend>
<div class="percheckbox">
    <input class="clock" type="checkbox" value="1" name="orologio">Browser
</div>
<div class="percheckbox">
    <input class="clock" type="checkbox" value="2" name="orologio">Prototipo1
</div>
<div class="percheckbox">
    <input class="clock" type="checkbox" value="3" name="orologio">test FP
</div>
<br style="clear: both;">
</fieldset>
</div>

即使我检查所有复选框,empty_watch仍为0.我做错了什么?

2 个答案:

答案 0 :(得分:5)

您的查找选择器:

'input.checkbox:checked'

查找带有&#39;复选框&#39;类的输入。你应该看看&#39;类型&#39;元素的属性。

而是尝试:

'input[type="checkbox"]:checked'

答案 1 :(得分:2)

有一个特定的:checkbox伪选择器。它与input[type=checkbox]

相同
var empty_watch = $('#clocks').find(':checkbox:checked').length;

正如你已经定位#clock然后发现,这也是非常好的速度。

您可以稍微减少它,如果,如果您知道没有其他可检查的输入:

var empty_watch = $('#clocks').find(':checked').length;