84 votes

Tableau jQuery de toutes les cases à cocher sélectionnées (par classe)

Duplicata possible :
Sélectionner les valeurs d'un groupe de cases à cocher avec jQuery

En HTML, j'ai un ensemble de cases à cocher regroupées par une classe. Je veux obtenir un tableau dans jQuery contenant toutes les cases à cocher qui sont sélectionnées/cochées pour cette classe (les autres cases à cocher de la page sont donc ignorées).

Donc un code HTML comme celui-ci :

<input type="checkbox" class="group1" value="18" checked="checked" />
<input type="checkbox" class="group1" value="20" />
<input type="checkbox" class="group1" value="15" />
<input type="checkbox" class="group2" value="14" />
<input type="checkbox" class="group1" value="55" checked="checked" />
<input type="checkbox" class="group1" value="10" checked="checked" />
<input type="checkbox" class="group2" value="77" checked="checked" />
<input type="checkbox" class="group1" value="11" />

renvoie les valeurs des éléments cochés/sélectionnés. group1 les cases à cocher dans un tableau comme ceci :

var values = [ 18, 55, 10 ];

202voto

CMS Points 315406

Vous pouvez utiliser le :checkbox y :checked et les pseudo-sélecteurs .class avec lequel vous vous assurerez que vous obtenez les bons éléments, uniquement des cases à cocher cochées avec la classe que vous spécifiez.

Vous pouvez alors facilement utiliser le Traversée/carte pour obtenir un tableau de valeurs :

var values = $('input:checkbox:checked.group1').map(function () {
  return this.value;
}).get(); // ["18", "55", "10"]

31voto

Anurag Points 66470
var matches = [];
$(".className:checked").each(function() {
    matches.push(this.value);
});

5voto

Artemk Points 59

Vous pouvez également ajouter underscore.js à votre projet et pourra le faire en une seule ligne :

_.map($("input[name='category_ids[]']:checked"), function(el){return $(el).val()})

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