什么是input文本元素的正确的只读属性语法?

我知道text inputreadonly属性,但是当从其他网站读取代码(我的一个讨厌的习惯)时,我看到了不止一个实现:

 <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" > 

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

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

从w3 :

readonly = “只读”“”(空string) – 指定该元素表示一个控件,其值不会被编辑。

所以基本上是一样的。

HTML5规范

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

readonly属性是一个布尔属性

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

元素上布尔属性的存在表示真值,缺less属性表示假值。

如果该属性存在,则其值必须是空string,或者是该属性规范名称的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" /> 

缺less该属性是错误的唯一有效语法:

 <input type="text"/> 

build议

如果你关心写有效的XHTML,使用readonly="readonly" ,因为<input readonly>是无效的,其他的select是不太可读的。 否则,只需使用<input readonly>因为它更短。

应该是

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