Why clicking on checkbox does not add the attribute checked='checked' [closed]

强颜欢笑 提交于 2019-11-27 22:05:18

问题


When I click a checkbox, why does checked attribute is not getting added?. You can see the code here http://jsfiddle.net/FCrSg/


回答1:


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/




回答2:


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



回答3:


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.



来源:https://stackoverflow.com/questions/4882000/why-clicking-on-checkbox-does-not-add-the-attribute-checked-checked

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!