JQuery несколько флажков массив - PullRequest
36 голосов
/ 29 мая 2011
<input type="checkbox" name="options[]" value="1" />
<input type="checkbox" name="options[]" value="2" />
<input type="checkbox" name="options[]" value="3" />
<input type="checkbox" name="options[]" value="4" />
<input type="checkbox" name="options[]" value="5" />

Как создать массив со значениями флажков, которые отмечены?

ПРИМЕЧАНИЕ: (ВАЖНО) Мне нужен массив типа [1, 2, 3, 4, 5], а не как[«1», «2», «3», «4», «5»].ПРИМЕЧАНИЕ. Есть около 50 флажков.

Может ли кто-нибудь мне помочь?Пожалуйста!

Спасибо!

Ответы [ 4 ]

69 голосов
/ 29 мая 2011
var checked = []
$("input[name='options[]']:checked").each(function ()
{
    checked.push(parseInt($(this).val()));
});
58 голосов
/ 29 мая 2011

Вы можете использовать $.map() (или даже функцию .map(), которая работает с объектом jQuery), чтобы получить массив проверенных значений.Унарный оператор (+) приведёт строку к числу

var arr = $.map($('input:checkbox:checked'), function(e,i) {
    return +e.value;
});

console.log(arr);

Вот пример

2 голосов
/ 08 октября 2013

Если у вас есть класс для каждого поля ввода, вы можете сделать это как

        var checked = []
        $('input.Booking').each(function ()
        {
            checked.push($(this).val());
        });
2 голосов
/ 13 августа 2013
var checkedString = $('input:checkbox:checked.name').map(function() { return this.value; }).get().join();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...