问题描述

看了 HTML 规范,但不能使头或尾:http://www.w3.org/TR/html5/the-input-element.html#attr-input-checked

检查 HTML 中的复选框 (不是动态) 的正确方法是什么?

checked="true"
checked="checked"

取消选中复选框的正确方法是什么?

<input type="checkbox" /> with no checked attribute
checked="false"
checked="none"

在哪里检查 HTML 规范来检查/取消选中复选框?

最佳解决办法

<input type="checkbox" checked="checked" />

或简单地

<input type="checkbox" checked />

选中复选框。未勾选的勾选属性 (<input type="checkbox" />) 复选框。

参考:http://www.w3.org/TR/html-markup/input.checkbox.html#input.checkbox.attrs.checked

次佳解决办法

根据 HTML5 草案,checked 属性是 「boolean attribute」,「元素上的布尔属性的存在表示真实值,而不存在属性则表示虚假值」 。属性的名称事情足够了。因此,要使一个复选框初始检查,您使用

<input type=checkbox checked>

默认情况下,在没有 checked 属性的情况下,最初未选中复选框:

<input type=checkbox>

保持这种方式可以使它们变得简单,但是如果您需要遵循 XML 语法 (即在 XHTML 线性化中使用 HTML5),则不能单独使用属性名称。然后,允许的 (按照 HTML5 草稿) 的值是空字符串和字符串 checked,不区分大小写。例:

<input type="checkbox" checked="checked" />

第三种解决办法

<input type="checkbox" checked />

HTML5 不要求属性具有值

第四种办法

您可以在 w3schools 上参考此页面,但基本上您可以使用以下任何一种:

<input checked>
<input checked="checked">
<input checked="">

第五种办法

在 jQuery 中:

选中复选框:

$("#checkboxid").attr("checked","checked");

要取消选中复选框:

$("#checkboxid").removeAttr("checked");

其他答案提示解决方案,并指出您进一步挖掘之后的文档将让您得到这个答案。 Jukka K. Korpela 有理由这是正确的答案,基本上我按照他的链接,然后查找 jQuery 文档来获得这个结果。只是想到我会保存未来的人谁找到这篇文章那些额外的步骤。

第六种办法

罗伯特答案的补充答案 http://jsfiddle.net/ak9Sb/在 jQuery 中

获取/设置复选框状态时,可能会遇到这些现象:

.trigger("click");

检查未勾选的复选框,但不要添加 checked 属性。如果使用触发器,不要尝试使用”checked” 属性获取状态。

.attr("checked", "");

不取消选中复选框…

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛