输入文本元素的正确readonly属性语法是什么?

时间:2013-04-19 16:32:08

标签: html forms readonly input-field

我知道readonly的{​​{1}}属性,但在阅读其他网站的代码时(我的一个讨厌的习惯),我看到了不止一个实现:

text input

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

我甚至见过

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

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

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

3 个答案:

答案 0 :(得分:67)

来自w3

  

readonly = “readonly”“”(空字符串)清空 -   指定该元素表示不打算编辑其值的控件。

所以基本上它是一样的。

答案 1 :(得分:63)

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",因为<input readonly>无效,而其他替代方案的可读性较差。否则,只需使用<input readonly>,因为它更短。

答案 2 :(得分:4)

应该是

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