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

<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 флажков.

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

Спасибо!

 Duvrai30 дек. 2015 г., 16:51

Ответы на вопрос(4)

var checkedString = $('input:checkbox:checked.name').map(function() { return this.value; }).get().join();
Решение Вопроса
var checked = []
$("input[name='options[]']:checked").each(function ()
{
    checked.push(parseInt($(this).val()));
});

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

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

console.log(arr);

Вотпример

 Muhammad Yasir29 мая 2011 г., 10:52
+1 за использование унарного оператора.
 CyberJunkie29 мая 2011 г., 23:52
нвм это работает :)
 Dormouse29 мая 2011 г., 10:55
+1 этот ответ более элегантный, чем мой.
 CyberJunkie29 мая 2011 г., 23:50
Спасибо, что поделились этим! Знаете ли вы, как добавить проверенные значения на вход, а не span? Я пытался$('#test').val(arr.join(','));
 Jason C17 июл. 2017 г., 15:51
Вы можете сократить его еще больше, напримерvar arr = $.map($('input:checkbox:checked'), (e) => +e.value);

вы можете сделать это как

        var checked = []
        $('input.Booking').each(function ()
        {
            checked.push($(this).val());
        });

Ваш ответ на вопрос