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 souhaite effectuer une validation lorsqu'un utilisateur décoche une case. Parce qu'au moins une case doit être cochée. Donc, s'il décoche le dernier, il se vérifie automatiquement à nouveau.
Avec jQuery, je peux facilement savoir s'il est vérifié ou non:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Mais je veux en fait 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 cela affichera toujours le message «non coché». Pas vraiment ce à quoi je m'attendais ...
démo: http://jsfiddle.net/tVM5H/
Alors finalement j'ai besoin de quelque chose comme:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Mais évidemment cela ne fonctionne pas. Je préfère ne 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ère chose, est-ce un bogue jQuery? Parce que pour moi, c'est un comportement inattendu. Et deuxièmement, quelqu'un a-t-il des idées pour une bonne alternative?