256 votes

Utilisation de jquery pour obtenir toutes les cases à cocher cochées avec un certain nom de classe

Je sais que je peux obtenir toutes les cases à cocher cochées sur une page en utilisant ceci :

$('input[type=checkbox]').each(function () {
    var sThisVal = (this.checked ? $(this).val() : "");
});

Mais je l'utilise maintenant sur une page qui comporte d'autres cases à cocher que je ne veux pas inclure. Comment modifier le code ci-dessus pour qu'il ne prenne en compte que les cases à cocher cochées par une certaine classe ?

0 votes

Dois-je mettre à jour le titre pour dire class au lieu de name ?

0 votes

@Russ Cam - déjà fait

1 votes

$('input[type=checkbox] :checked ') fonctionnera également.

464voto

Cokegod Points 2274

$('.theClass:checkbox:checked') vous donnera toutes les cases à cocher cochées avec la classe theClass .

17 votes

Joli. De plus, $('.theClass:checkbox:not(:checked)') récupérera tous ceux qui ne sont pas cochés.

1 votes

Puis-je faire cela pour toutes les cases à cocher avec nom ?

0 votes

Comment ajouter une autre classe aux éléments cochés ? Je veux afficher une bordure sur les éléments de saisie cochés.

132voto

Russ Cam Points 58168
$('input:checkbox.class').each(function () {
       var sThisVal = (this.checked ? $(this).val() : "");
  });

Un exemple à démontrer.

:checkbox est un sélecteur pour les cases à cocher (en fait, vous pourriez omettre l'élément input du sélecteur, bien que j'aie trouvé des cas de niche où l'on obtenait des résultats étranges en faisant cela dans des versions antérieures de la bibliothèque. Je suis sûr qu'ils sont corrigés dans les versions ultérieures). .class est le sélecteur pour l'attribut de classe de l'élément contenant class .

9 votes

Les notes de Jquery sur :checkbox recommandent de s'en tenir à [type="checkbox"]. $('[type="checkbox"].class').... ou $('input[type="checkbox"].class')

0 votes

@TSmith avez-vous une référence ?

9 votes

Je l'ai lu ici : api.jquery.com/checkbox-selector ...sous "Notes supplémentaires"

93voto

karim79 Points 178055

Obligatoire .map exemple :

var checkedVals = $('.theClass:checkbox:checked').map(function() {
    return this.value;
}).get();
alert(checkedVals.join(","));

3 votes

$('input.theClass:checked').map(function() {return this.value}).get().join(',') ;

0 votes

@Fedir : votre commande donne on,on comme résultat ('on' pour chaque case cochée)

1 votes

@Jay Vous devez définir les attributs de valeur de vos cases à cocher pour obtenir leur valeur dans une chaîne séparée par des virgules.

8voto

Florian Mertens Points 480

Je ne suis pas sûr que cela vous aide dans votre cas particulier, et je ne suis pas sûr que dans votre cas, les cases à cocher que vous voulez inclure seulement font toutes partie d'un seul formulaire ou div ou table, mais vous pouvez toujours sélectionner toutes les cases à cocher à l'intérieur d'un élément spécifique. Par exemple :

<ul id="selective">
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
</ul>

Ensuite, à l'aide de la commande jQuery suivante, il parcourt UNIQUEMENT les cases à cocher de l'UL avec id="selective" :

$('#selective input:checkbox').each(function () {
 var sThisVal = (this.checked ? $(this).val() : "");
});

7voto

Liza Daly Points 1855
 $('input.myclass[type=checkbox]').each(function () {
   var sThisVal = (this.checked ? $(this).val() : ""); });

Voir Sélecteurs de classe jQuery .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X