¿Cuál es la sintaxis correcta del atributo readonly para los elementos de texto de entrada?


Sé sobre el atributo readonly para text input, Pero mientras leía código de otros sitios (un hábito desagradable mío ) vi más de una implementación para él :

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

Y

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

E incluso he visto

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

..Y creo que vi aún más, pero no puedo recordar la sintaxis exacta ahora ..

Entonces, ¿cuál es el correcto que debo usar ?

3 answers

De w3:

readonly = "readonly" o "" (cadena vacía) o vacío - Especifica que el elemento representa un control cuyo valor no está destinado a ser editado.

Así que básicamente es lo mismo.

 66
Author: Vucko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-09 07:31:12

Especificación HTML5 :

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

El atributo readonly es un atributo booleano

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

La presencia de un atributo booleano en un elemento representa el valor verdadero, y la ausencia del atributo representa el valor falso.

Si el atributo está presente, su valor debe puede ser la cadena vacía o un valor que es una coincidencia ASCII insensible a mayúsculas y minúsculas para el nombre canónico del atributo, sin espacios en blanco iniciales o finales.

Conclusión:

Los siguientes son válidos, equivalentes y verdaderos :

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

Los siguientes son no válidos :

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

La ausencia del atributo es la única sintaxis válida para false:

<input type="text"/>

Recomendación

Si te importa escribir valid XHTML, use readonly="readonly", ya que <input readonly> no es válido y otras alternativas son menos legibles. De lo contrario, solo use <input readonly> ya que es más corto.

 55
Author: Ciro Santilli 新疆改造中心 六四事件 法轮功,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-14 07:20:55

Debe ser

<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />
 4
Author: billah77,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-09 13:01:39