输入复选框为true或已选中或是

时间:2012-05-31 11:24:50

标签: javascript html checkbox html-input

我已经看到了预选复选框的三种实现方式。我开始使用checked =“checked”,因为我认为这是“正确”的方式(从来没有像“checked”=“是”那样)。我正在考虑更改为checked =“true”,因为它似乎更易读并且更容易编写JavaScript代码。请注意,同样的问题适用于其他属性,例如“disabled”=“disabled”与“disabled”=“true”。只要我一致,使用“真实”的首选方法?谢谢

<input type="checkbox" checked="checked" value="123" name="howdy" />
<input type="checkbox" checked="true"    value="123" name="howdy" />
<input type="checkbox" checked="yes"     value="123" name="howdy" />

2 个答案:

答案 0 :(得分:56)

只有checkedchecked="checked"有效。您的其他选项取决于浏览器中的错误恢复。

checked="yes"checked="true"特别糟糕,因为它们暗示checked="no"checked="false"会将默认状态设置为取消选中 ...不会。

答案 1 :(得分:3)

相应于W3C检查输入的属性可以不存在/不存在或已经“检查”为其值。这不会使其他值无效,因为对浏览器实现没有限制,允许使用“true”,“on”,“yes”等值。为了保证您按照W3C的建议,使用checked =“checked”来编写跨浏览器复选框/广播。

禁用,readonly和ismap输入的属性以相同的方式进行。

<强> EDITED

对于checked,disabled,readonly和ismap输入的属性,

empty不是有效值,如@Quentin所警告