2012-05-31 3 views
33

Я видел три варианта предварительного выбора флажка. Я начал использовать checked = "checked", потому что я думал, что это был «правильный» способ (никогда не понравился «checked» = «yes»). Я думаю об изменении на checked = "true", поскольку он кажется более читаемым и легче кодировать JavaScript. Обратите внимание, что этот же вопрос относится и к другим атрибутам, таким как «disabled» = «disabled» и «disabled» = «true». Насколько я согласен, использует «истинный» предпочтительный подход? Спасибоinput checkbox true или checked или yes

<input type="checkbox" checked="checked" value="123" name="howdy" /> 
<input type="checkbox" checked="true" value="123" name="howdy" /> 
<input type="checkbox" checked="yes"  value="123" name="howdy" /> 
+0

насчет $ ('вход [имя = Foo]'). attr ('checked', true) ;? Должно ли это действительно быть $ ('input [name = foo]'). Attr ('checked', 'checked')? – user1032531

ответ

55

Только checked и checked="checked" действительны. Ваши другие параметры зависят от восстановления ошибок в браузерах.

checked="yes" и checked="true" особенно плохо, как они предполагают, что checked="no" и checked="false" установит состояние по умолчанию, чтобы быть бесконтрольно ... что они не будут.

+4

[Спецификация HTML 5] (http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute). –

+0

Извините, это нужно добавить сюда ... Как насчет $ ('input [name = foo]'). Attr ('checked', true) ;? Должно ли это действительно быть $ ('input [name = foo]'). Attr ('checked', 'checked')? – user1032531

+0

Это должно быть 'jQuery (selector) .prop ('checked', true);' ('attr' несовместим с тем, как он обрабатывает проверенный атрибут, поэтому его следует избегать ради мозгов сторонников). – Quentin

3

Соответственно W3C проверенный атрибут ввода может отсутствовать или пронумерован или «отмечен» как его значение. Это не приводит к недействительности других значений, поскольку для реализации браузера не существует ограничений, позволяющих использовать значения «true», «on», «yes» и т. Д. Чтобы гарантировать, что вы будете писать кросс-браузерный флажок/радио, используйте checked = "checked", как рекомендовано W3C.

отключены, атрибуты ввода только для чтения и ismap идут одинаково.

EDITED

пусто не является допустимым значением для атрибутов ПРОВЕРЕНО, Инвалид, ReadOnly и ISMAP входного, поскольку предупрежден @Quentin

+0

Нет. В нем указано, что проверенный атрибут может быть опущен или он может иметь значение «checked». Это делает недействительным любое другое значение (HTML позволяет использовать только то, что разрешено, оно не позволяет использовать все, что не запрещено). Поскольку это логический атрибут, вы можете опустить все * кроме * значения при наличии атрибута. т. е. заданный 'checked =" проверенный "' вы можете перенести первые 9 символов и последний символ). – Quentin

+0

Я сказал, что это не делает недействительными причины других значений ** браузеры ** могут реализовать свой способ разбора html по своему усмотрению, поскольку они принимают атрибут ommited/absent checked или checked = "checked" как ** рекомендуется ** W3C , Я принимаю отрицательный «случай» «пустой», недопустимое значение, но все остальное применяется. –

Смежные вопросы