How can I reset all checkboxes in a document using jQuery or pure JS?
13 Answers
If you mean how to remove the 'checked' state from all checkboxes:
$('input:checkbox').removeAttr('checked');
- 119,594
- 33
- 182
- 182
-
This script is toggling the state of check boxes. Not sure if I am doing something wrong – Sundeep May 17 '11 at 14:33
-
44Note that in jQuery v1.6 and higher, you should be using .prop('checked', false) instead for greater cross-browser compatibility - see http://api.jquery.com/prop/ – Henry C Apr 24 '13 at 06:34
-
I used this to reset the form before opening new dialog. After this I need to put one checkbox 'checked' and this doesn't work. When I look at generated code it is 'checked' but on my page it is not $('input:checkbox').removeAttr('checked'); $('input[value='+val+']').attr('checked',true); – Gayane Oct 24 '13 at 12:30
-
1This is now an obsolete answer - see: https://stackoverflow.com/questions/17420534/check-uncheck-checkbox-using-jquery – raison Aug 22 '17 at 14:19
If you want to use form's reset feature, you'd better to use this:
$('input[type=checkbox]').prop('checked',true);
OR
$('input[type=checkbox]').prop('checked',false);
Looks like removeAttr() can not be reset by form.reset().
- 103,437
- 51
- 275
- 359
- 529
- 4
- 2
-
1Although the accepted answer works too, I find this the best way to do it. Please, if you're reading this, consider using this way, since its best practice to. – rafaelmorais Mar 07 '19 at 09:45
-
This is not RE SETTING the checkbox, is UN SETTING it, you need to use item.defaultChecked to reset to the original state! – Patricio Rossi Apr 13 '21 at 01:39
I have used this before:
$('input[type=checkbox]').prop('checked', false);
seems that .attr and .removeAttr doesn't work for some situations.
edit: Note that in jQuery v1.6 and higher, you should be using .prop('checked', false) instead for greater cross-browser compatibility - see https://api.jquery.com/prop
Comment here: How to reset all checkboxes using jQuery or pure JS?
- 153
- 1
- 6
In some cases the checkbox may be selected by default. If you want to restore default selection rather than set as unselected, compare the defaultChecked property.
$(':checkbox').each(function(i,item){
this.checked = item.defaultChecked;
});
- 3,410
- 24
- 22
-
I almost answered the same! there is a difference between reset and unset ! UP – Patricio Rossi Apr 13 '21 at 01:37
The above answer did not work for me -
The following worked
$('input[type=checkbox]').each(function()
{
this.checked = false;
});
This makes sure all the checkboxes are unchecked.
- 1,466
- 5
- 22
- 35
Javascript
var clist = document.getElementsByTagName("input");
for (var i = 0; i < clist.length; ++i) { clist[i].checked = false; }
jQuery
$('input:checkbox').each(function() { this.checked = false; });
To do opposite, see: Select All Checkboxes By ID/Class
- 137,499
- 74
- 643
- 694
$(":checkbox:checked").each(function () {
this.click();
});
to unchecked checked box, turn your logic around to do opposite
- 2,146
- 1
- 15
- 12
As said in Tatu Ulmanen's answer using the follow script will do the job
$('input:checkbox').removeAttr('checked');
But, as Blakomen's comment said, after version 1.6 it's better to use jQuery.prop() instead
Note that in jQuery v1.6 and higher, you should be using .prop('checked', false) instead for greater cross-browser compatibility
$('input:checkbox').prop('checked', false);
Be careful when using jQuery.each() it may cause performance issues. (also, avoid jQuery.find() in those case. Use each instead)
$('input[type=checkbox]').each(function()
{
$(this).prop('checked', false);
});
- 1
- 1
- 5,663
- 8
- 59
- 96
You can be selective of what div or part of your page can have checkboxes checked and which don't. I came across the scenario where I have two forms in my page and one have prefilled values(for update) and other need to be filled fresh.
$('#newFormId input[type=checkbox]').attr('checked',false);
this will make only checkboxes in form with id newFormId as unchecked.
- 589
- 1
- 4
- 13
I used something like that
$(yourSelector).find('input:checkbox').removeAttr('checked');
- 221
- 2
- 7
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container check">
<button class="btn">click</button>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
</div>
<script>
$('.btn').click(function() {
$('input[type=checkbox]').each(function()
{
this.checked = false;
});
})
</script>
</body>
</html>
- 119
- 12
-
3Code only answers are discouraged. You really want to include some explanations. – GhostCat Sep 05 '17 at 18:47
Easy. by class GIVE ME A LIKE
$('.YUCLASS').prop('checked', false);
or
$('.YUCLASS').removeAttr('checked');
Resetall checkbox
- 261
- 1
- 10
<input type="checkbox" id="bike" name="vehicle" value="bike">
<label for="bike">Bike</label>
<input type="checkbox" id="car" name="vehicle" value="car">
<label for="car">Car</label>
<button id="select">Select All</button>
JavaScript #1
Get all the checkboxes using the name field,
document.getElementById('select').onclick = function() {
var checkboxes = document.getElementsByName('vehicle');
for (var checkbox of checkboxes) {
checkbox.checked = false;
}
}
JavaScript #2
If there is no other input tags other than checkboxes,
document.getElementById('select').onclick = function() {
var checkboxes = document.getElementsByTagName("input");
for (var checkbox of checkboxes) {
checkbox.checked = false;
}
}
- 1,363
- 1
- 10
- 18