Umgang mit Browserdifferenzen mit unbestimmter Checkbox

Grundierung: Ein HTML-Kontrollkästchen kann als gesetzt werdenindeterminate, was anzeigt, dass es weder aktiviert noch deaktiviert ist. Selbst in diesem unbestimmten Zustand gibt es immer noch einen zugrunde liegenden Booleschen Wertchecked Zustand.

Wenn ein unbestimmtes Kontrollkästchen angeklickt wird, verliert es seinindeterminate Zustand. Je nach Browser (Firefox) kann es zusätzlich das umschaltenchecked Eigentum.

Diese Geige veranschaulicht die Situation. Wenn Sie in Firefox auf eines der Kontrollkästchen klicken, wird der ursprüngliche Basiswert umgeschaltetchecked Zustand. Im IE wird diechecked Eigenschaft wird für den ersten Klick allein gelassen.

Ich möchte, dass sich alle Browser gleich verhalten, auch wenn dies zusätzliches Javascript bedeutet. Leider ist dieindeterminate Eigenschaft ist auf false gesetztVor dasonclick Handler (oderonchange und jquerychange) aufgerufen wird, daher kann ich nicht erkennen, ob es für einen Klick auf eine aufgerufen wirdindeterminate Kontrollkästchen oder nicht.

Dasmouseup undkeyup (für Leertaste umschalten) Ereignisse zeigen den Stand der Dingeindeterminate Staat, aber ich möchte lieber nicht so spezifisch sein: es scheint zerbrechlich.

Ich könnte eine separate Eigenschaft auf der Checkbox pflegen (data-indeterminate oder ähnliches), aber ich wollte wissen, ob es eine einfache Lösung gibt, die mir fehlt, und / oder ob andere Leute ähnliche Probleme haben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage