Ответ 1
От w3:
readonly = "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" >
.. И я верю, что видел еще больше, но не могу вспомнить точный синтаксис сейчас..
Итак, какой из них правильный, который я должен использовать?
От w3:
readonly = "readonly" или "" (пустая строка) или пусто - Указывает, что элемент представляет элемент управления, значение которого не предназначено для редактирования.
Так что в принципе это то же самое.
Спецификация 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>
, поскольку он короче.
должен быть
<input type="text" value="myvalue" class="class anotherclass" readonly="readonly" />