2009-07-21 9 views
11

J'essaye d'écrire un morceau de code jQuery où, si toutes les cases à cocher sont "décochées", alors toutes les balises li ont la classe "disabled". Mais, si une case (case à cocher) est cochée, alors toutes les balises [li] perdent la classe "disabled".jQuery Cases à cocher

Merci beaucoup!

+0

Voulez-vous supprimer la classe 'disabled' si au moins une case est cochée OU EXACTEMENT une case est cochée? – SolutionYogi

+0

Je le veux si au moins une case est cochée. –

+0

Merci RaYell, votre code a énormément aidé! –

Répondre

15
$(':checkbox').click(function() { 
    $('li').toggleClass('disabled', !$(':checkbox:checked').length); 
}); 
+0

Vous devez utiliser $ ('# myform input [type = case à cocher]: cochée') si vous ne souhaitez que les cases à cocher dans un formulaire avec id myform. –

+0

Je pense que vous vouliez dire $ ("li") au lieu de $ ("*"). –

+0

Oui, je remarque cette faute de frappe et l'a corrigé. – RaYell

1
$(':checkbox') 
    .click(
     function() 
     { 
      $('li').toggleClass('disabled', $(':checkbox :checked').length <= 0)); 
     } 
    ); 

EDIT: Merci Ken pour remarquer la méthode toggleClass.

5

modification légère de RaYell de, qui comprendra toutes les cases à cocher dynamiquement ajouté:

$(':checkbox').live('click', function() { 
    $('li').toggleClass('disabled', !$(':checkbox:checked').length); 
}); 
+6

"Modifier" n'est pas un bon événement à capturer pour les cases à cocher.Vous devez toujours utiliser "clic" (qui est également déclenché lorsqu'une case est cochée à l'aide du clavier). –

+0

Excellent point, et un que je devrais avoir retenu du code précédent. IE ne gère pas "changer" sur les cases à cocher, pour les débutants. –

8

Je suis tombé sur ce poste par hasard et je pensais que je voudrais ajouter mon shilling vaut:

jQuery(':checkbox').click(function() 
{ 
    if (jQuery(this).is(':checked')) 
    { 
     alert("Checked"); 
    } 
    else 
    { 
     alert("Unchecked"); 
    } 
}); 
+0

Cela ne s'applique pas à une classe, ou examine toutes les autres cases à cocher, donc ne résout pas vraiment le problème du PO. L'ajout d'un gestionnaire de clic aux cases à cocher, puis de voir si l'élément cliqué est coché est un peu la partie facile :( –

Questions connexes