67

readonly作为大多数,我对 的属性很熟悉text input,但是在阅读其他网站的代码时(我的一个讨厌的习惯),我看到了不止一个该属性的实现:

<input type="text" value="myvalue" class="class anotherclass" readonly >

<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" >

我什至见过

<input type="text" value="myvalue" class="class anotherclass" readonly="true" >

..而且我相信我看到了更多,但现在不记得确切的语法了..

那么,我应该使用哪一个是正确的?

4

3 回答 3

79

HTML5 规范

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

readonly 属性是一个布尔属性

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

元素上存在布尔属性表示真值,不存在该属性表示假值。

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

结论

以下是有效的、等价的和真实的

<input type="text" readonly />
<input type="text" readonly="" />
<input type="text" readonly="readonly" />
<input type="text" readonly="ReAdOnLy" />

以下是无效的:

<input type="text" readonly="0" />
<input type="text" readonly="1" />
<input type="text" readonly="false" />
<input type="text" readonly="true" />

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

<input type="text"/>

推荐

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

于 2014-07-05T16:31:08.193 回答
73

w3

readonly = "readonly""" (空字符串)- 指定元素表示一个控件,其值不应被编辑。

所以基本上是一样的。

于 2013-04-19T16:37:03.100 回答
4

应该是

<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />
于 2014-05-09T12:39:01.483 回答