HTML - Почему не определено не определено = "не определено | верно" - PullRequest
14 голосов
/ 20 февраля 2012

Я хочу использовать неопределенное свойство флажка.Изменение значения в JavaScript работает во всех видах браузеров (даже в MSIE6!), Однако я не могу установить начальное значение с помощью атрибутов HTML в any .

Это сделано специально? Если так, то почему? На стороне сервера я могу определить, что он неопределенный.Итак, почему я не могу сказать браузеру?Не беспокоились ли поставщики браузеров о FOUC (вспышках неустановленного контента), если долго выполняющийся скрипт поддерживает настройку свойства?

Вот рабочий пример: http://jsfiddle.net/KUQC9/1/

Ответы [ 2 ]

11 голосов
/ 20 февраля 2012

Вы не можете сделать флажок неопределенным через HTML по дизайну. См. Эту статью на css-tricks.com , в которой подробно обсуждается тема.

Что касается вопроса «почему», в списках рассылки W3C может быть полезна некоторая информация:

  • Похоже, что идея придания флажкам значения в трех состояниях (казалось бы, проверенного, непроверенного, неопределенного) была рассмотрена, но не реализована из-за проблем обратной совместимости
  • Единственное упоминание об истинном indeterminate HTML-атрибуте "content", которое вы можете найти в своем примере, было здесь:

Для чего бы то ни было, на самом деле есть :indeterminate CSS-селектор (кажется, что он обрабатывается как другие псевдоклассы CSS, такие как :visited, который также не может быть установлен через HTML напрямую, так что, возможно, это еще одна причина indeterminate тоже не может быть). В своей демонстрации CSS-селектора сам W3C использует примерно тот же подход, что и вы: W3C-неопределенный демонстратор CSS-селектора . В свете этого, я бы сказал, что вы используете лучший метод для установки неопределенного состояния флажка

4 голосов
/ 20 февраля 2012

Это по замыслу.Единственный HTML-способ обозначить состояние флажка - через проверенный атрибут;Это связано с тем, что флажок имеет значение true / false, а не true / false / unknown.Маркировка чего-либо неопределенного может быть осуществлена ​​через Javascript, но это не изменит фактическое / введенное значение флажка.

Если вы действительно хотите инициализировать чекбоксы для неопределенности, вам нужно сделать это с помощью Javascript (я хотел бы представить для события загрузки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...