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.