为什么单击复选框不会添加属性checked ='checked'

时间:2011-02-03 02:01:49

标签: javascript jquery html javascript-events jquery-selectors

当我点击一个复选框时,为什么检查属性没有被添加?你可以在这里看到代码 http://jsfiddle.net/FCrSg/

3 个答案:

答案 0 :(得分:69)

HTML属性 checked表示:在页面加载时,默认选中 。单击复选框后,将不会更改。

<input type="checkbox" checked="checked"> <!-- The HTML attribute -->

DOM属性 checked实际上是复选框的当前状态,是true / false。单击复选框时,此更改,但在检查HTML时不可见。

$('input:check')[0].checked == true;
// Whether or not the checkbox is currently checked

答案 1 :(得分:7)

你想做什么?找出它是否经过检查?

$('.user_roles').click(function(){ 
    console.log( $(this).is(':checked'));
});

http://jsfiddle.net/petersendidit/FCrSg/1/

答案 2 :(得分:2)

如果要查看它出现在控制台中显示的元素上,请使用原生setAttribute()方法。

示例: http://jsfiddle.net/FCrSg/2/

this.setAttribute('checked',this.checked);

所以它看起来像这样:

$('.user_roles').click(function(){
    this.setAttribute('checked',this.checked);
    console.log( $(this) );
});

然后控制台应该给你:

<input class=​"user_roles" type=​"checkbox" checked=​"true">​

虽然您通常不需要像这样设置的属性。通常这个属性就足够了。