我使用以下代码检查已检查的复选框用户数。
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.我做错了什么?
答案 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;