61

I have tons of checkboxes that are either checked (checked="checked") or unchecked.

I would like to get the number of all checkboxes, unchecked and checked checkboxes.

With check-box I mean <input type="checkbox" />.

How to do it with jQuery? Thanks in advance!

Nitin Bhargava
  • 125
  • 1
  • 9
daGrevis
  • 20,428
  • 35
  • 96
  • 136

5 Answers5

170

You could do:

var numberOfChecked = $('input:checkbox:checked').length;
var totalCheckboxes = $('input:checkbox').length;
var numberNotChecked = totalCheckboxes - numberOfChecked;

EDIT

Or even simple

var numberNotChecked = $('input:checkbox:not(":checked")').length;
Hassaan
  • 6,770
  • 5
  • 29
  • 47
Nicola Peluchetti
  • 74,514
  • 30
  • 136
  • 188
18

Assume that you have a tr row with multiple checkboxes in it, and you want to count only if the first checkbox is checked.

You can do that by giving a class to the first checkbox

For example class='mycxk' and you can count that using the filter, like this

$('.mycxk').filter(':checked').length
Ramzan Mahmood
  • 1,768
  • 2
  • 18
  • 40
15

The following code worked for me.

$('input[name="chkGender[]"]:checked').length;
Gunaseelan
  • 2,323
  • 5
  • 33
  • 40
Nguyễn Thành Bồi
  • 2,187
  • 2
  • 13
  • 8
5

There are multiple methods to do that:

Method 1:

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

Method 2:

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

Method 3:

alert($(":checkbox:checked").length);
FelixSFD
  • 5,810
  • 10
  • 43
  • 111
Hasnain Mehmood
  • 377
  • 4
  • 4
2

You can do it by using name attibute, class, id or just universal checkbox; If you want to count only checked number of checkbox.

By the class name :

var countChk = $('checkbox.myclassboxName:checked').length;

By name attribute :

var countByName= $('checkbox[name=myAllcheckBoxName]:checked').length;

Complete code

$('checkbox.className').blur(function() {
    //count only checked checkbox 
    $('checkbox[name=myAllcheckBoxName]:checked').length;
});
Maxime
  • 800
  • 6
  • 17
CodeLover
  • 121
  • 1
  • 6