Vielleicht ein bisschen spät, aber ich glaube, dass Sie bei einem Kontrollkästchen "Alles ankreuzen" auch das Szenario behandeln sollten, wenn Sie das Kontrollkästchen "Alles ankreuzen" aktiviert haben und dann eines der Kontrollkästchen darunter deaktivieren.
In diesem Fall sollte das Kontrollkästchen für alle automatisch deaktiviert werden.
Auch wenn Sie alle Kontrollkästchen manuell ankreuzen, sollte das Kontrollkästchen für alle automatisch aktiviert werden.
Sie benötigen zwei Ereignisbehandlungsroutinen, eine für das Kästchen "Alles ankreuzen" und eine für das Anklicken eines der einzelnen Kästchen darunter.
// HANDLES THE INDIVIDUAL CHECKBOX CLICKS
function client_onclick() {
var selectAllChecked = $("#chk-clients-all").prop("checked");
// IF CHECK ALL IS CHECKED, AND YOU'RE UNCHECKING AN INDIVIDUAL BOX, JUST UNCHECK THE CHECK ALL CHECKBOX.
if (selectAllChecked && $(this).prop("checked") == false) {
$("#chk-clients-all").prop("checked", false);
} else { // OTHERWISE WE NEED TO LOOP THROUGH INDIVIDUAL CHECKBOXES AND SEE IF THEY ARE ALL CHECKED, THEN CHECK THE SELECT ALL CHECKBOX ACCORDINGLY.
var allChecked = true;
$(".client").each(function () {
allChecked = $(this).prop("checked");
if (!allChecked) {
return false;
}
});
$("#chk-clients-all").prop("checked", allChecked);
}
}
// HANDLES THE TOP CHECK ALL CHECKBOX
function client_all_onclick() {
$(".client").prop("checked", $(this).prop("checked"));
}