Je veux vérifier si une case à cocher vient d'être décochée, lorsqu'un utilisateur clique dessus. La raison en est que je veux faire une validation lorsqu'un utilisateur décoche une case à cocher. Parce qu'au moins une case à cocher doit être cochée. Donc, s'il décoche la dernière, elle se recoche automatiquement.
Avec jQuery, je peux facilement savoir s'il est coché ou non :
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Mais en fait, je veux seulement avoir une instruction if qui vérifie si une case à cocher vient d'être décochée.
J'ai donc pensé que je pourrais le faire avec le code suivant :
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
Mais le message "non vérifié" s'affichera toujours. Ce n'est pas vraiment ce que j'attendais...
démo : http://jsfiddle.net/tVM5H/
Donc, éventuellement, j'ai besoin de quelque chose comme :
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Mais de toute évidence, cela ne fonctionne pas. Je ne veux pas utiliser le premier exemple, car j'aurais alors une instruction "else" inutile alors que je n'ai besoin que d'une instruction "if".
Alors premièrement, est-ce que c'est un bug de JQuery ? Parce que pour moi, c'est un comportement inattendu. Et deuxièmement, quelqu'un a-t-il une idée d'une bonne alternative ?