I want an event to fire client side when a checkbox is checked / unchecked:
$('.checkbox').click(function() {
if ($(this).is(':checked')) {
// Do stuff
}
});
Basically I want it to happen for every checkbox on the page. Is this method of firing on the click and checking the state ok?
I’m thinking there must be a cleaner jQuery way. Anyone know a solution?
Bind to the
changeevent instead ofclick. However, you will probably still need to check whether or not the checkbox is checked:The main benefit of binding to theRedacted in commentschangeevent over theclickevent is that not all clicks on a checkbox will cause it to change state. If you only want to capture events that cause the checkbox to change state, you want the aptly-namedchangeevent.Also note that I’ve used
this.checkedinstead of wrapping the element in a jQuery object and using jQuery methods, simply because it’s shorter and faster to access the property of the DOM element directly.Edit (see comments)
To get all checkboxes you have a couple of options. You can use the
:checkboxpseudo-selector:Or you could use an attribute equals selector: