Jak radzić sobie z różnicami przeglądarki przy nieokreślonym polu wyboru

Elementarz: Pole wyboru HTML można ustawić jakoindeterminate, który wyświetla go jako niezaznaczony ani niezaznaczony. Nawet w tym nieokreślonym stanie nadal istnieje bazowa wartość logicznachecked stan.

Po kliknięciu nieokreślonego pola wyboru traci ono swojeindeterminate stan. W zależności od przeglądarki (Firefox) może dodatkowo przełączaćchecked własność.

To jsfiddle ilustruje sytuację. W Firefoksie kliknięcie jednego z pól wyboru powoduje przełączenie początkowego elementu bazowegochecked stan. W IEchecked nieruchomość jest pozostawiona sama przez pierwsze kliknięcie.

Chciałbym, aby wszystkie przeglądarki zachowywały się tak samo, nawet jeśli oznacza to dodatkowy javascript. Niestetyindeterminate właściwość jest ustawiona na falseprzed onclick handler (lubonchange i jquerychange) jest wywoływany, więc nie mogę wykryć, czy jest to wywołane kliknięciemindeterminate pole wyboru lub nie.

Themouseup ikeyup (w przypadku przełączania spacji) zdarzenia pokazują wcześniejszeindeterminate stan, ale wolałbym nie być tak specyficzny: wydaje się kruchy.

Mogę utrzymać oddzielną właściwość w polu wyboru (data-indeterminate lub podobne), ale chciałem wiedzieć, czy brakuje mi prostego rozwiązania i / lub czy inni ludzie mają podobne problemy.

questionAnswers(4)

yourAnswerToTheQuestion