html title - Каково правильное значение для отключенного атрибута?




rel stylesheet (5)

Какое правильное значение для disabled атрибута для текстового поля или текстового поля?

Я видел следующее:

<input type="text" disabled />
<input type="text" disabled="disabled" />
<input type="text" disabled="true" />

Answers

Я просто попробовал все это, и для IE11 единственное, что работает, отключено = «true». Значения отключенного или отсутствующего значения не работали. На самом деле, jsp получил ошибку, равную для всех полей, поэтому мне пришлось указать disabled = "true", чтобы это работало.


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


Спецификация HTML5 :

http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute :

Атрибут checked content является логическим атрибутом

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

Наличие логического атрибута для элемента представляет истинное значение, а отсутствие атрибута представляет ложное значение.

Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое является ASCII-регистро-независимым совпадением для канонического имени атрибута, без начального или конечного пробела.

Вывод :

Следующие действительны, эквивалентны и истинны :

<input type="text" disabled />
<input type="text" disabled="" />
<input type="text" disabled="disabled" />
<input type="text" disabled="DiSaBlEd" />

Следующие недопустимы :

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

Отсутствие атрибута является единственным допустимым синтаксисом для false :

<input type="text" />

Рекомендация

Если вы хотите написать действительный XHTML, disabled="disabled" , поскольку <input disabled> недействителен, а другие альтернативы менее читаемы. Иначе просто используйте <input disabled> поскольку он короче.


  • Для XHTML <input type="text" disabled="disabled" /> является допустимой разметкой.
  • Для HTML5 <input type="text" disabled /> действителен и используется W3C на своих образцах.
  • Фактически, оба способа работают во всех основных браузерах.

Как уже упоминалось ранее, вам нужно добавить autocomplete="off" к вашим кнопкам.

Вот фрагмент sh + perl для автоматизации этого в случае <button> s в ваших HTML-файлах / шаблонах (при некоторых предположениях):

find /path/to/html/templates -type f -name '*.html' -exec perl -pi -e \
  's/(?<=<button )(.*?)(?=>)/@{[(index($1,"autocomplete=")!=-1?"$1":"$1 autocomplete=\"off\"")]}/g' \
  {} +

Предположения:

  • Открытие тегов <button> начинается и заканчивается на одной строке. Если это не так (то есть они могут быть разделены на несколько строк), то замена /g на /gs должна помочь ( модификатор s вызывает совпадение строк)

  • Допустимый HTML (например, между < и > нет смешных символов) и без него не отображается больше ( > ) внутри открытого тега.







html textbox textarea