jQuery receiving checkbox status

17,890

Solution 1

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.

Solution 2

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

Share:
17,890
Yekver
Author by

Yekver

Updated on June 11, 2022

Comments

  • Yekver
    Yekver almost 2 years

    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?