取消选中一个复选框,但该属性仍保持选中状态

wil*_*fun 2 jquery html5

我有一个默认选中="已选中"的复选框.

如果我取消选中该复选框,然后执行类似的操作

alert($('#checkbox').attr('checked'));
Run Code Online (Sandbox Code Playgroud)

无论是否检查,它都会始终发出警报checked.

我在这里制作了这个功能的代码.

如何获取复选框的实际检查状态(而不是默认代码中写入的内容)?

Sam*_*rie 7

attr绑定到DOM属性,然后保持初始值.如果要检查状态,则必须使用prop:

$('#checkbox').prop('checked')
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读jQuery doc的"属性与属性"段落prop.


Eli*_*Eli 5

使用prop()代替,因为:

\n\n
\n

根据 W3C 表单规范,检查的属性是布尔属性,这意味着如果该属性完全存在,则相应的属性为 true\xe2\x80\x94,即使例如该属性不存在value 或 设置为空字符串值甚至“false”。对于所有布尔属性来说都是如此。

\n
\n\n
alert($(\'#checkbox\').prop(\'checked\'));\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这里阅读更多内容

\n