HTML复选框的checked属性的值是多少?

我们都知道如何在HTML中形成复选框输入:

<input name="checkbox_name" id="checkbox_id" type="checkbox">

我不知道 - 选中复选框的技术上正确的值是多少? 我已经看到了这些工作:

<input name="checkbox_name" id="checkbox_id" type="checkbox" checked>
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="on">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="checked">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="true">

严格地说,你应该把有意义的东西 - 根据这里的规格,最正确的版本是:

<input name=name id=id type=checkbox checked=checked>

对于HTML,您也可以使用空属性语法checked="" ,或者甚至简单地checked (对于更严格的XHTML,这不受支持)。

然而,实际上,大多数浏览器都会支持引号之间的任何值。 以下全部将被检查:

<input name=name id=id type=checkbox checked>
<input name=name id=id type=checkbox checked="">
<input name=name id=id type=checkbox checked="yes">
<input name=name id=id type=checkbox checked="blue">
<input name=name id=id type=checkbox checked="false">

只有以下内容才会被取消选中:

<input name=name id=id type=checkbox>

另请参阅关于disabled="disabled"类似问题。


HTML5规范

http://www.w3.org/TR/html5/forms.html#attr-input-checked:

禁用的内容属性是布尔属性。

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes:

元素上布尔属性的存在表示真值,缺少属性表示假值。

如果该属性存在,则其值必须是空字符串,或者是该属性规范名称的ASCII不区分大小写匹配的值,且不带前导或尾随空格。

结论

以下是有效的,等同的和真实的

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

以下内容无效

<input type="checkbox" checked="0" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="true" />

缺少该属性是唯一有效的false语法:

<input />

建议

如果您关心编写有效的XHTML,请使用checked="checked" ,因为<input checked>无效XHTML(但有效的HTML)和其他替代方法的可读性较差。 否则,只需使用<input checked>因为它更短。


<input ... checked />
<input ... checked="checked" />

这些同样有效。 在JavaScript中:

input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");
链接地址: http://www.djcxy.com/p/1639.html

上一篇: What's the proper value for a checked attribute of an HTML checkbox?

下一篇: jQuery checkbox change and click event