Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 5 months ago.
When I click a checkbox, why does checked attribute is not getting added?. You can see the code here
http://jsfiddle.net/FCrSg/
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 5 months ago.
When I click a checkbox, why does checked attribute is not getting added?. You can see the code here
http://jsfiddle.net/FCrSg/
What are you trying to do? Find out if its checked?
$('.user_roles').click(function(){
console.log( $(this).is(':checked'));
});
http://jsfiddle.net/petersendidit/FCrSg/1/
The HTML attribute checked
means: checked by default, when the page loads. This won't change when the checkbox is clicked.
<input type="checkbox" checked="checked"> <!-- The HTML attribute -->
The DOM property checked
is actually the current state of the checkbox and is either true/false. This will change when the checkbox is clicked, but isn't visible when you inspect the HTML.
$('input:check')[0].checked == true;
// Whether or not the checkbox is currently checked
If you want to see it appear on the element displayed in the console, use the native setAttribute()
method.
Example: http://jsfiddle.net/FCrSg/2/
this.setAttribute('checked',this.checked);
So it would look like this:
$('.user_roles').click(function(){
this.setAttribute('checked',this.checked);
console.log( $(this) );
});
Then the console should give you:
<input class="user_roles" type="checkbox" checked="true">
Though you normally wouldn't need the attribute set like that. Typically the property is enough.