2015-02-10 25 views
0

我正在使用以下代碼來檢查有多少個複選框用戶已選中。計算已檢查多少個複選框

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

的關鍵問題是:* *當你檢查'空watch'? :) – 2015-02-10 17:09:54

回答

5

您發現選擇:

'input.checkbox:checked' 

查找與一類 '複選框' 的輸入。你應該看看元素的'type'屬性。

而是嘗試:

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

是的,你是對的。我在選擇物體時錯了。謝謝! – 2015-02-10 17:13:47

2

有一個特定:checkbox僞選擇。它同input[type=checkbox]

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

正如你已經瞄準#clock然後找到,這將是相當不錯的速度明智了。

你可以稍微降低它,下面,如果你知道有沒有其他可選中輸入:

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