Пример. Флажок HTML может быть установлен как indeterminate, что означает, что он не установлен и не установлен. Даже в этом неопределенном состоянии все еще существует базовое логическое состояние checked.

Когда нажимается неопределенный флажок, он теряет свое состояние indeterminate. В зависимости от браузера (Firefox) он может дополнительно переключать свойство checked.
Этот jsfiddle иллюстрирует ситуацию. В Firefox однократное нажатие на любой из флажков приводит к переключению их начального базового состояния checked. В IE свойство checked не используется для первого клика.
Я хотел бы, чтобы все браузеры вели себя одинаково, даже если это означает дополнительный javascript. К сожалению, для свойства indeterminate установлено значение false перед вызовом обработчика onclick (или onchange и jquery change), поэтому я не могу определить, вызывается ли он для щелчка по флажку indeterminate или нет.
События mouseup и keyup (для переключения пробела) показывают предыдущее состояние indeterminate, но я бы не хотел быть таким конкретным: оно кажется хрупким.
Я мог бы сохранить отдельное свойство для флажка (data-indeterminate или подобное), но я хотел знать, есть ли простое решение, которое мне не хватает, и/или есть ли у других людей подобные проблемы.
checkedдля первого щелчка. - person Pow-Ian   schedule 05.04.2013