web-dev-qa-db-fra.com

Obtenir une liste des cases à cocher cochées dans une div à l'aide de jQuery

Je veux obtenir une liste de noms de cases à cocher sélectionnées dans un div avec un certain identifiant. Comment ferais-je cela avec jQuery?

Par exemple, pour ce div, je veux obtenir un tableau ["c_n_0"; "c_n_3"] ou une chaîne "c_n_0; c_n_3"

<div id="checkboxes">
    <input id="chkbx_0" type="checkbox" name="c_n_0" checked="checked" />Option 1
    <input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2
    <input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3
    <input id="chkbx_3" type="checkbox" name="c_n_3" checked="checked" />Option 4
</div>
214
Juozas Kontvainis

Combinaison de deux réponses précédentes:

var selected = [];
$('#checkboxes input:checked').each(function() {
    selected.Push($(this).attr('name'));
});
412
Alex LE

Cela ferait-il?

var selected = [];
$('div#checkboxes input[type=checkbox]').each(function() {
   if ($(this).is(":checked")) {
       selected.Push($(this).attr('name'));
   }
});
52
nikc.org
$("#checkboxes").children("input:checked")

vous donnera un tableau des éléments eux-mêmes. Si vous avez simplement besoin des noms:

$("#checkboxes").children("input:checked").map(function() {
    return this.name;
});
36
Corey

J'avais besoin du nombre de toutes les cases à cocher qui sont cochées. Au lieu d'écrire une boucle je l'ai fait

$(".myCheckBoxClass:checked").length;

Comparez-le avec le nombre total de cases à cocher pour voir si elles sont égales. J'espère que ça va aider quelqu'un

21
Usman Shaukat

Cela fonctionne pour moi.

var selecteditems = [];

$("#Div").find("input:checked").each(function (i, ob) { 
    selecteditems.Push($(ob).val());
});
7
Ricardo

Vous pouvez aussi leur donner le même nom donc ils sont un tablea , mais donnez-leur des valeurs différentes :

<div id="checkboxes">
    <input type="checkbox" name="c_n[]" value="c_n_0" checked="checked" />Option 1
    <input type="checkbox" name="c_n[]" value="c_n_1" />Option 2
    <input type="checkbox" name="c_n[]" value="c_n_2" />Option 3
    <input type="checkbox" name="c_n[]" value="c_n_3" checked="checked" />Option 4
</div>

Vous pouvez alors obtenir uniquement la valeur de ceux cochés en utilisant map :

$('#checkboxes input:checked[name="c_n[]"]')
            .map(function () { return $(this).val(); }).get()
5
SharpC