2016-03-16 88 views
0

我想JavaScript讓一組複選框計數並且不計算一組複選框。Javascript count checked checkbox and not count another checkbox

現在我有下面的JavaScript代碼:

function updateCount { 
    var count = $("input[type=checkbox]:checked").size(); 
    $("#count").text(count);  
}; 
}); 

這裏是我的複選框:

<input type="checkbox" name="checkbox_1">Checkbox 1 
<input type="checkbox" name="checkbox_2">Checkbox 2 

所以基本上我的JavaScript是有辦法只能算第一個複選框,但不是第二個複選框。

+1

您的代碼不完整。你如何調用你的'updateCount'函數,並且你有一個額外的'});'。你也應該使用'.length'而不是'.size()'。 – j08691

+0

你應該使用'.length',而不是'size()'。見[這個答案](http://stackoverflow.com/questions/14202601/array-size-vs-array-length)。 – Ionian316

+0

如果只計算第一個複選框,結果將始終爲1?不知道你的意思...... –

回答

1

如果你能夠修改你的複選框的HTML,我會使用一個類將它們分組。

<input class="countThis" type="checkbox" name="checkbox_1">Checkbox 1 
<input class="countThis" type="checkbox" name="checkbox_2">Checkbox 2 

而剛剛離開那類東西掉你不想算

<input type="checkbox" name="checkbox_3">Checkbox 3 
<input type="checkbox" name="checkbox_4">Checkbox 4 

最後,你的函數只是看起來像這樣

function updateCount { 
    var count = $(".countThis:checked").size(); 
    $("#count").text(count);  
}; 
+0

這樣做的技巧感謝您的幫助。 –

+0

沒問題,很高興幫忙:] – sm1215

0

有兩種簡單的方法可以做到這一點。

首先,如果你想挑來算,其複選框:

$('input[type=checkbox][name="checkbox_1"]').length

第二,如果你想選擇要排除的複選框:

$('input[type=checkbox][name!="checkbox_2"]').length

+0

idk如果問題不清楚,你可以給出答案 – indubitablee

+0

我發現這個問題足夠清晰;顯然,凱文試圖弄清楚如何只選擇一些複選框,或者避免只選擇一些複選框。我提供了兩個最簡單的(但也許不是最快的)方法來做到這一點。如果凱文的計劃比他放棄的複雜得多,那麼他可以在這裏要求澄清,但是我列出的兩個策略將會是他想要使用的策略,而不管他的選擇器最終會變得多麼複雜。 – TAGraves

+0

不知道op想用什麼標準來區分chkbxs來選擇而不是,你無法充分回答這個問題。他的問題是:我如何選擇一些chkbxs而不是其他人?你的答案是:選擇你想要的或者排除你不想要的。是的,當然他想選擇他想要選擇的人而不選擇其他人。爲了捕捉一些魚,所以你說要使用釣魚竿,但是你沒有要求澄清他想捕捉什麼類型的魚,這決定了使用什麼類型的魚餌。使用什麼選擇器是他正在尋找的答案。 – indubitablee

0

如果你總是隻需要您可以使用的第一個元素:第一種類型的選擇器:

$("input[type='checkbox']:first-of-type").prop({ 
checked: true 
});