Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery receiving checkbox status

I'm changing checkbox status this way: $(this).attr("checked", 'checked');

After this I want to receive checkbox status, but I got this:

$(this).attr('checked'): "checked"
$(this).is(':checked'): false

How this can be?

P.S. Maybe I'm not correctly changing checkbox status via jQuery?

like image 380
Yekver Avatar asked Oct 04 '11 09:10

Yekver


2 Answers

The proper way is $(this).prop('checked') to return the boolean property instead of the attribute (which is a a string).

Using .prop() you can also set the checked state: $(this).prop('checked', true_or_false);

As you can see on http://jsfiddle.net/ThiefMaster/QR2fL/, .attr('checked') returns the initial value of the attribute - it does not changed when checking/unchecking the checkbox.

like image 132
ThiefMaster Avatar answered Sep 23 '22 03:09

ThiefMaster


You should not check the checkbox like this:

$(this).attr("checked", 'checked');

but like this

$(this).prop("checked", true);

To check if a checkbox is checked you can use:

$(this).prop('checked');

or

$(this).is(':checked');

which return a boolean proerty

like image 37
Nicola Peluchetti Avatar answered Sep 19 '22 03:09

Nicola Peluchetti