Ich möchte überprüfen, ob ein Kontrollkästchen gerade deaktiviert wurde, wenn ein Benutzer darauf klickt. Der Grund dafür ist, dass ich eine Validierung durchführen möchte, wenn ein Benutzer ein Kontrollkästchen deaktiviert. Weil mindestens ein Kontrollkästchen aktiviert sein muss. Wenn er also den letzten deaktiviert, überprüft er sich automatisch erneut.
Mit jQuery kann ich leicht herausfinden, ob es überprüft wurde oder nicht:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Aber ich möchte eigentlich nur eine if-Anweisung haben, die prüft, ob ein Kontrollkästchen gerade deaktiviert wurde.
Also dachte ich, ich könnte das mit dem folgenden Code machen:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
Dies zeigt jedoch immer die Meldung "nicht markiert" an. Nicht wirklich das, was ich erwartet hatte ...
Demo: http://jsfiddle.net/tVM5H/
Also brauche ich irgendwann so etwas wie:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Aber das funktioniert natürlich nicht. Ich möchte lieber nicht das erste Beispiel verwenden, da ich dann eine unnötige 'else'-Anweisung hätte, wenn ich nur eine' if'-Anweisung benötige.
Ist das als erstes ein jQuery-Fehler? Für mich ist es unerwartetes Verhalten. Und zweitens, hat jemand eine Idee für eine gute Alternative?