36

我已经看到了预选复选框的三种实现方式。我开始使用checked="checked" 因为我认为这是“正确”的方式(但是从来没有像“checked”="yes" 那样)。我正在考虑更改为 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" />
4

2 回答 2

61

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

checked="yes"并且checked="true"特别糟糕,因为它们暗示了这一点checked="no"checked="false"并将默认状态设置为未选中......他们不会。

于 2012-05-31T11:27:55.670 回答
3

根据W3C检查输入的属性可以不存在/省略或将“检查”作为其值。这不会使其他值无效,因为浏览器实现没有限制允许“true”、“on”、“yes”等值。为了保证您将编写一个跨浏览器的复选框/收音机,请按照W3C的建议使用 checked="checked" 。

disabled、readonly 和 ismap 输入的属性以同样的方式进行。

已编辑

正如@Quentin 警告的那样,空不是checked、disabled、readonly 和ismap 输入属性的有效值

于 2012-05-31T11:39:39.153 回答