Официально правильный синтаксис xhtml : disabled="disabled"
.
Причина этого в том, что xhtml - это синтаксис XML, а XML требует, чтобы атрибуты имели значения.Спецификации xhtml также явно указывают, что значение должно быть «отключено».
Причина выбора этого значения по сравнению с любым другим возможным значением была довольно произвольной;они просто решили, что все ранее логические атрибуты должны быть преобразованы в формат XML, сделав их значение таким же, как их имя.
Так что да, есть официальная спецификация, в которой говорится, что вы должны использовать этот полный синтаксис.Но это относится только к документам xhtml.Вы можете найти его здесь (если вы ищете на этой странице disabled
, вы увидите, что он указан как допускающий только значение "disabled"
. Аналогично для readonly
и checked
атрибуты).
Простой HTML - как v4, так и v5 - не привязан таким образом к ограничениям XML и не требует значения атрибута для disabled
;простое существование атрибута disabled
достаточно, чтобы отключить поле, независимо от того, есть ли у вас значение для атрибута или какое это значение.
Окончательный результат всего этого заключается в том, что если выиспользуя XHTML-тип документа или вы хотите оставаться XML-совместимым, вы должны использовать disabled="disabled"
.Если вы не используете XHTML и вам не нужен действительный синтаксис XML, то вы можете просто использовать disabled
отдельно или с любым значением атрибута, которое вам нравится.
Еще одна вещь, которую я хотел быпримечание (немного не по теме, но может быть актуальным) заключается в том, что это может оказать влияние на любой код CSS или JQuery, который может ссылаться на поле.Например, я видел людей, использующих селекторы JQuery, такие как $('[disabled=disabled]')
и аналогичные в CSS.Очевидно, это зависит от атрибута, имеющего ожидаемое значение.Поэтому, если вы собираетесь ссылаться на логический атрибут, подобный этому, в селекторе, вы должны ссылаться на него без значения, например, так: $('[disabled]')
, поскольку это будет работать независимо от того, какой атрибут установлен.