Подтвердить что ты не робот

Каков правильный синтаксис атрибута readonly для входных текстовых элементов?

Как и большинство, я знаком с атрибутом 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" >

.. И я верю, что видел еще больше, но не могу вспомнить точный синтаксис сейчас..

Итак, какой из них правильный, который я должен использовать?

4b9b3361

Ответ 1

От w3:

readonly = "readonly" или "" (пустая строка) или пусто - Указывает, что элемент представляет элемент управления, значение которого не предназначено для редактирования.

Так что в принципе это то же самое.

Ответ 2

Спецификация 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>, поскольку он короче.

Ответ 3

должен быть

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