Получить список проверенных флажков в div, используя jQuery - PullRequest
205 голосов
/ 28 января 2010

Я хочу получить список имен флажков, которые выбраны в div с определенным идентификатором. Как бы я это сделал, используя jQuery?

Например, для этого div я хочу получить массив ["c_n_0"; "c_n_3"] или строка "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>

Ответы [ 6 ]

401 голосов
/ 28 января 2010

Сочетание двух предыдущих ответов:

var selected = [];
$('#checkboxes input:checked').each(function() {
    selected.push($(this).attr('name'));
});
48 голосов
/ 28 января 2010

Будет ли это делать?

var selected = [];
$('div#checkboxes input[type=checkbox]').each(function() {
   if ($(this).is(":checked")) {
       selected.push($(this).attr('name'));
   }
});
36 голосов
/ 28 января 2010
$("#checkboxes").children("input:checked")

даст вам массив самих элементов. Если вам просто нужны имена:

$("#checkboxes").children("input:checked").map(function() {
    return this.name;
});
19 голосов
/ 25 апреля 2014

Мне нужно было подсчитать все флажки, которые проверены. Вместо того, чтобы писать цикл, я сделал это

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

Сравните это с общим количеством флажков, чтобы увидеть, равны ли они. Надеюсь, это кому-нибудь поможет

7 голосов
/ 02 апреля 2013

Это работает для меня.

var selecteditems = [];

$("#Div").find("input:checked").each(function (i, ob) { 
    selecteditems.push($(ob).val());
});
5 голосов
/ 24 января 2016

Вы также можете присвоить им одно и то же имя , чтобы они представляли собой массив , но дать им разные значения :

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

Затем вы можете получить только значения только отмеченных используя карту :

$('#checkboxes input:checked[name="c_n[]"]')
            .map(function () { return $(this).val(); }).get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...