Check if checkbox is checked with jQuery

JavascriptJqueryHtmlCheckbox

Javascript Problem Overview


How can I check if a checkbox in a checkbox array is checked using the id of the checkbox array?

I am using the following code, but it always returns the count of checked checkboxes regardless of id.

function isCheckedById(id) {
    alert(id);
    var checked = $("input[@id=" + id + "]:checked").length;
    alert(checked);
      
    if (checked == 0) {
        return false;
    } else {
        return true;
    }
}

Javascript Solutions


Solution 1 - Javascript

$('#' + id).is(":checked")

That gets if the checkbox is checked.

For an array of checkboxes with the same name you can get the list of checked ones by:

var $boxes = $('input[name=thename]:checked');

Then to loop through them and see what's checked you can do:

$boxes.each(function(){
    // Do stuff here with this
});

To find how many are checked you can do:

$boxes.length;

Solution 2 - Javascript

IDs must be unique in your document, meaning that you shouldn't do this:

<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />

Instead, drop the ID, and then select them by name, or by a containing element:

<fieldset id="checkArray">
    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

And now the jQuery:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or, without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;

Solution 3 - Javascript

$('#checkbox').is(':checked'); 

The above code returns true if the checkbox is checked or false if not.

Solution 4 - Javascript

All following methods are useful:

$('#checkbox').is(":checked")

$('#checkbox').prop('checked')

$('#checkbox')[0].checked

$('#checkbox').get(0).checked

It is recommended that DOMelement or inline "this.checked" should be avoided instead jQuery on method should be used event listener.

Solution 5 - Javascript

jQuery code to check whether the checkbox is checked or not:

if($('input[name="checkBoxName"]').is(':checked'))
{
  // checked
}else
{
 // unchecked
}

Alternatively:

if($('input[name="checkBoxName"]:checked'))
{
    // checked
}else{
  // unchecked
}

Solution 6 - Javascript

> The most important concept to remember about the checked attribute is > that it does not correspond to the checked property. The attribute > actually corresponds to the defaultChecked property and should be used > only to set the initial value of the checkbox. The checked attribute > value does not change with the state of the checkbox, while the > checked property does. Therefore, the cross-browser-compatible way to > determine if a checkbox is checked is to use the property

All below methods are possible

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked") 

Solution 7 - Javascript

This is also an idea I use frequently:

var active = $('#modal-check-visible').prop("checked") ? 1 : 0 ;

If cheked, it'll return 1; otherwise it'll return 0.

Solution 8 - Javascript

You can use this code,

if($("#checkboxId").is(':checked')){
     // Code in the case checkbox is checked.
} else {
     // Code in the case checkbox is NOT checked.
}

Solution 9 - Javascript

As per the jQuery documentation there are following ways to check if a checkbox is checked or not. Lets consider a checkbox for example (Check Working jsfiddle with all examples)

<input type="checkbox" name="mycheckbox" id="mycheckbox" />
<br><br>
<input type="button" id="test-with-checked" value="Test with checked" />
<input type="button" id="test-with-is" value="Test with is" />
<input type="button" id="test-with-prop" value="Test with prop" />

Example 1 - With checked

$("#test-with-checked").on("click", function(){
    if(mycheckbox.checked) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

Example 2 - With jQuery is, NOTE - :checked

var check;
$("#test-with-is").on("click", function(){
    check = $("#mycheckbox").is(":checked");
    if(check) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

Example 3 - With jQuery prop

var check;
$("#test-with-prop").on("click", function(){
    check = $("#mycheckbox").prop("checked");
    if(check) {
         alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

Check Working jsfiddle

Solution 10 - Javascript

I know the OP want jquery but in my case pure JS was the answer so if anyone like me is here and do not have jquery or do not want to use it - here is the JS answer:

document.getElementById("myCheck").checked

It returns true if the input with ID myCheck is checked and false if it is not checked.

Simple as that.

Solution 11 - Javascript

You can try this:

<script>
function checkAllCheckBox(value)
{
   if($('#select_all_').is(':checked')){
   $(".check_").attr ( "checked" ,"checked" );
	}
	else
	{
		$(".check_").removeAttr('checked');
	}

 }

</script>
<input type="checkbox" name="chkbox" id="select_all_" value="1" />


<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />

Solution 12 - Javascript

You can use any of the following recommended codes by jquery.

if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};

Solution 13 - Javascript

You can do it simply like;

Working Fiddle

HTML

<input id="checkbox" type="checkbox" />

jQuery

$(document).ready(function () {
    var ckbox = $('#checkbox');

    $('input').on('click',function () {
        if (ckbox.is(':checked')) {
            alert('You have Checked it');
        } else {
            alert('You Un-Checked it');
        }
    });
});

or even simpler;

$("#checkbox").attr("checked") ? alert("Checked") : alert("Unchecked");

If the checkbox is checked it will return true otherwise undefined

Solution 14 - Javascript

$(document).on('click','#checkBoxId',function(){
  var isChecked = $(this).is(':checked');
  console.log(isChecked);
});

This code above works also on bootstrap modal. isChecked is true or flase ;

Solution 15 - Javascript

Simple Demo for checking and setting a check box.

[jsfiddle](http://jsfiddle.net/eUK4v/ "this text appears when you mouse over")!

$('.attr-value-name').click(function() {
    if($(this).parent().find('input[type="checkbox"]').is(':checked'))
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', false);
    }
    else
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', true);
    }
});

Solution 16 - Javascript

Just to say in my example the situation was a dialog box that then verified the check box before closing dialog. None of above and https://stackoverflow.com/questions/901712/how-do-i-check-if-a-checkbox-is-checked?page=1&tab=active#tab-top and https://stackoverflow.com/questions/7960208/jquery-if-checkbox-is-checked did not appear to work either.

In the end

<input class="cb" id="rd" type="checkbox">
<input class="cb" id="fd" type="checkbox">

var fd=$('.cb#fd').is(':checked');
var rd= $('.cb#rd').is(':checked');

This worked so calling the class then the ID. rather than just the ID. It may be due to the nested DOM elements on this page causing the issue. The workaround was above.

Solution 17 - Javascript

For checkbox with an id

<input id="id_input_checkbox13" type="checkbox"></input>

you can simply do

$("#id_input_checkbox13").prop('checked')

you will get true or false as return value for above syntax. You can use it in if clause as normal boolean expression.

Solution 18 - Javascript

Actually, according to jsperf.com, The DOM operations are fastest, then $().prop() followed by $().is()!!

Here are the syntaxes :

var checkbox = $('#'+id);
/* OR var checkbox = $("input[name=checkbox1]"); whichever is best */

/* The DOM way - The fastest */
if(checkbox[0].checked == true)
   alert('Checkbox is checked!!');

/* Using jQuery .prop() - The second fastest */
if(checkbox.prop('checked') == true)
   alert('Checkbox is checked!!');

/* Using jQuery .is() - The slowest in the lot */
if(checkbox.is(':checked') == true)
   alert('Checkbox is checked!!');

I personally prefer .prop(). Unlike .is(), It can also be used to set the value.

Solution 19 - Javascript

Something like this can help

togglecheckBoxs =  function( objCheckBox ) {

	var boolAllChecked = true;

	if( false == objCheckBox.checked ) {
		$('#checkAll').prop( 'checked',false );
	} else {
		$( 'input[id^="someIds_"]' ).each( function( chkboxIndex, chkbox ) {
			if( false == chkbox.checked ) {
				$('#checkAll').prop( 'checked',false );
				boolAllChecked = false;
			}
		});

		if( true == boolAllChecked ) {
			$('#checkAll').prop( 'checked',true );
    	}
	}
}

Solution 20 - Javascript

Toggle checkbox checked

$("#checkall").click(function(){
	$("input:checkbox").prop( 'checked',$(this).is(":checked") );
})

Solution 21 - Javascript

Using this code you can check at least one checkbox is selected or not in different checkbox groups or from multiple checkboxes. Using this you can not require to remove IDs or dynamic IDs. This code work with the same IDs.

Reference Link

<label class="control-label col-sm-4">Check Box 2</label>
	<input type="checkbox" name="checkbox2" id="checkbox21" value=ck1 /> ck1<br />
	<input type="checkbox" name="checkbox2" id="checkbox22" value=ck2 /> ck2<br />
    
<label class="control-label col-sm-4">Check Box 3</label>
	<input type="checkbox" name="checkbox3" id="checkbox31" value=ck3 /> ck3<br />
	<input type="checkbox" name="checkbox3" id="checkbox32" value=ck4 /> ck4<br />
					
<script>
function checkFormData() {
	if (!$('input[name=checkbox2]:checked').length > 0) {
		document.getElementById("errMessage").innerHTML = "Check Box 2 can not be null";
		return false;
	}
	if (!$('input[name=checkbox3]:checked').length > 0) {
		document.getElementById("errMessage").innerHTML = "Check Box 3 can not be null";
		return false;
	}
	alert("Success");
	return true;
}
</script>

Solution 22 - Javascript

Since it's mid 2019 and jQuery sometimes takes a backseat to things like VueJS, React etc. Here's a pure vanilla Javascript onload listener option:

<script>
  // Replace 'admincheckbox' both variable and ID with whatever suits.

  window.onload = function() {
    const admincheckbox = document.getElementById("admincheckbox");
    admincheckbox.addEventListener('click', function() {
      if(admincheckbox.checked){
        alert('Checked');
      } else {
        alert('Unchecked');
      }
    });
  }
</script>

Solution 23 - Javascript

Your question is not clear: you want to give "checkbox array id" at input and get true/false at output - in this way you will not know which checkbox was checked (as your function name suggest). So below there is my proposition of body of your isCheckedById which on input take checkbox id and on output return true/false (it's very simple but your ID should not be keyword),

this[id].checked

function isCheckedById(id) {
  return this[id].checked;
}



// TEST

function check() {
  console.clear()
  console.log('1',isCheckedById("myCheckbox1"));
  console.log('2',isCheckedById("myCheckbox2"));
  console.log('3',isCheckedById("myCheckbox3"));
}

<label><input id="myCheckbox1" type="checkbox">check 1</label>
<label><input id="myCheckbox2" type="checkbox">check 2</label>
<label><input id="myCheckbox3" type="checkbox">check 3</label>
<!-- label around inputs makes text clickable -->
<br>
<button onclick="check()">show checked</button>

Solution 24 - Javascript

Try this...

$(function(){
  $('body').on('click','.checkbox',function(e){
    
    if($(this).is(':checked')){
      console.log('Checked')
    } else {
      console.log('Unchecked')
    }
  })
})

Solution 25 - Javascript

use code below

<script>

$(document).ready(function () {
  $("[id$='chkSendMail']").attr("onchange", "ShowMailSection()");
}

function ShowMailSection() {
  if ($("[id$='chkSendMail'][type='checkbox']:checked").length >0){
      $("[id$='SecEmail']").removeClass("Hide");
  }
</script>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJakeView Question on Stackoverflow
Solution 1 - JavascriptJohn BokerView Answer on Stackoverflow
Solution 2 - JavascriptnickfView Answer on Stackoverflow
Solution 3 - JavascriptPrasanna RottiView Answer on Stackoverflow
Solution 4 - JavascriptjustnajmView Answer on Stackoverflow
Solution 5 - JavascriptKundan royView Answer on Stackoverflow
Solution 6 - JavascriptTechieView Answer on Stackoverflow
Solution 7 - JavascriptRtronicView Answer on Stackoverflow
Solution 8 - JavascriptMohammed Shaheen MKView Answer on Stackoverflow
Solution 9 - JavascriptSubodh GhulaxeView Answer on Stackoverflow
Solution 10 - JavascriptCombineView Answer on Stackoverflow
Solution 11 - JavascriptVishnu SharmaView Answer on Stackoverflow
Solution 12 - JavascriptendurView Answer on Stackoverflow
Solution 13 - JavascriptAamir ShahzadView Answer on Stackoverflow
Solution 14 - JavascriptinfomasudView Answer on Stackoverflow
Solution 15 - JavascriptAn IllusionView Answer on Stackoverflow
Solution 16 - JavascriptV HView Answer on Stackoverflow
Solution 17 - JavascriptAniket ThakurView Answer on Stackoverflow
Solution 18 - JavascriptBlackPantherView Answer on Stackoverflow
Solution 19 - JavascriptAbdul HamidView Answer on Stackoverflow
Solution 20 - JavascriptsourceboyView Answer on Stackoverflow
Solution 21 - JavascriptParth PatelView Answer on Stackoverflow
Solution 22 - JavascriptGrantView Answer on Stackoverflow
Solution 23 - JavascriptKamil KiełczewskiView Answer on Stackoverflow
Solution 24 - Javascriptoscar castellonView Answer on Stackoverflow
Solution 25 - JavascriptCode_WormView Answer on Stackoverflow