Question
I'd like to do something like this to tick a checkbox
using jQuery :
$(".myCheckBox").checked(true);
or
$(".myCheckBox").selected(true);
Does such a thing exist?
Answer
Modern jQuery
Use .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
DOM API
If you're working with just one element, you can always just access the
underlying
HTMLInputElement
and modify its [.checked
](https://developer.mozilla.org/en-
US/docs/Web/API/HTMLInputElement#Properties_checkbox_radio) property:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
The benefit to using the .prop()
and .attr()
methods instead of this is
that they will operate on all matched elements.
jQuery 1.5.x and below
The .prop()
method is not available, so you need to use
.attr()
.
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Note that this is the approach used by jQuery's unit tests prior to version
1.6
and is preferable to using $('.myCheckbox').removeAttr('checked');
since the
latter will, if the box was initially checked, change the behaviour of a call
to [.reset()
](https://developer.mozilla.org/en-
US/docs/Web/API/HTMLFormElement.reset) on any form that contains it – a subtle
but probably unwelcome behaviour change.
For more context, some incomplete discussion of the changes to the handling of
the checked
attribute/property in the transition from 1.5.x to 1.6 can be
found in the version 1.6 release
notes and the
Attributes vs. Properties section of the .prop()
documentation.