J'utilise l'événement toggle de Jquery pour faire certaines choses lorsqu'un utilisateur clique sur une case à cocher, comme ceci :
$('input#myId').toggle(
function(){
//do stuff
},
function(){
//do other stuff
}
);
Le problème est que la case à cocher n'est pas cochée lorsque je clique dessus. (Tout ce que j'ai mis dans l'événement toggle fonctionne correctement).
J'ai essayé ce qui suit :
$('input#myId').attr('checked', 'checked');
et
$(this).attr('checked', 'checked');
et même simplement
return true;
Mais rien ne fonctionne. Quelqu'un peut-il me dire où je fais fausse route ?
Edit - merci à tous ceux qui ont répondu. La réponse de Dreas a pratiquement fonctionné pour moi, sauf pour la partie qui vérifie l'attribut. Ceci fonctionne parfaitement (même si c'est un peu compliqué).
$('input#myInput').change(function ()
{
if(!$(this).hasClass("checked"))
{
//do stuff if the checkbox isn't checked
$(this).addClass("checked");
return;
}
//do stuff if the checkbox isn't checked
$(this).removeClass('checked');
});
Merci encore à tous ceux qui ont répondu.