在HTML复选框中,"checked=no"是有效的吗?

5
所以,我一直在改进我的网站。我的网站当然是从一个“视图”生成HTML。
现在,我的一个视图部分看起来像这样:
<input type="checkbox" name="Publish" checked="{=Entry.Publish ? "yes" : "no" =}" value="true" />

这是最简单的方法。然而,当它生成checked="no"时,无论何时加载页面,复选框仍将默认为选中状态。我真的必须完全排除checked属性才能使其不被选中吗?
另外,我正在使用HTML5作为我的文档类型。
4个回答

6

简短版:是的,它需要被排除在外。

属性的值无关紧要,只要存在,该框将被选中。

<input type="checkbox" name="Publish" value="true" checked />

这在HTML5中是有效的。

XHTML中需要一个值来表示该属性,惯例上使用checked="checked",因为像"yes"或"true"这样的值暗示着相反的情况会取消选框,这不是正确的,并且会使初学者感到困惑。类似的约定也适用于readonly="readonly"disabled="disabled"属性。


1

是的。 checked 是一个布尔属性,当它不存在时为“关闭”,当它存在时为“开启”。

W3C 参考 boolean 属性和 checked 属性。


1

来自规格

checked = "checked" 或者 ""(空字符串)或者为空

指定元素表示一个选定的控制。


0

如果要勾选,则需要包含checked,否则省略该属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接