什么值检查和选择是错误的?

我认为根据W3规范,你应该这样做

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

 selected="selected"

但是,大多数浏览器都会接受它,你只需写出“CHECKED”并且不要给它一个值。 那么,如果你确实包含了属性,那么会有(一致)被认为是否为假的值?


没有值会导致复选框被取消选中。 如果checked属性存在,则无论您将其设置为什么值,都会检查该复选框。

<input type="checkbox" checked />
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="unchecked" />
<input type="checkbox" checked="true" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="on" />
<input type="checkbox" checked="off" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="0" />
<input type="checkbox" checked="yes" />
<input type="checkbox" checked="no" />
<input type="checkbox" checked="y" />
<input type="checkbox" checked="n" />

checkedselected属性只允许两个值,它们是属性名称的副本和(从HTML 5起)空字符串。 给予任何其他价值是一个错误。

如果您不想设置属性,则必须省略整个属性。

请注意,在HTML 4中,您可能会忽略除该值之外的所有内容。 HTML 5改变了这个,省略了除名字之外的所有内容(这没有实际的区别)。

因此,完整(除了cAsE的变体)属性的有效表示集合是:

<input ... checked="checked"> <!-- All versions of HTML / XHTML -->
<input ...          checked > <!-- Only HTML 4.01 and earlier -->
<input ... checked          > <!-- Only HTML 5 and later -->
<input ... checked=""       > <!-- Only HTML 5 and later -->

作为文本/ HTML(HTML或XHTML)的文档将通过标签汤分析器提供,并且检查属性(具有任何值)的存在将被视为“应该检查该元素”。 因此,尽管无效, checked="true"checked="yes" ,并且checked="false"将全部触发检查状态。

我还没有任何意向来找出为XML解析模式提供了哪些错误恢复机制,如果给该属性赋予不同的值,但我希望HTML和/或简单错误恢复的遗留问题可以将其视为同样的方式:如果属性存在,那么元素将被检查。

(以上所有内容同样适用于selected因为它可以checked 。)


没有值被认为是错误的 ,只有没有该属性。 尽管有很多无效值,并且某些实现可能会将某些无效值视为假。

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 type="checkbox" />

建议

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

链接地址: http://www.djcxy.com/p/9575.html

上一篇: What values for checked and selected are false?

下一篇: What is the syntax for boolean attributes, e.g. a checked checkbox, in HTML?