web-dev-qa-db-fra.com

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

Duplicate possible:
Sélectionnez les valeurs du groupe de cases à cocher avec jQuery

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

Donc, le code HTML ressemble à ceci:

<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" />

Renverrait les valeurs du paramètre vérifié/sélectionné group1 _ cases à cocher dans un tableau comme celui-ci:

var values = [ 18, 55, 10 ];
84
leepowers

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

Ensuite, vous pouvez facilement utiliser la méthode Traversing/map pour obtenir un tableau de valeurs:

var values = $('input:checkbox:checked.group1').map(function () {
  return this.value;
}).get(); // ["18", "55", "10"]
202
CMS
var matches = [];
$(".className:checked").each(function() {
    matches.Push(this.value);
});
31
Anurag

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

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