Значения галочки jQuery для списка, разделенного запятыми
У меня есть несколько флажков с массивом имен, и я хочу, чтобы выходные данные отмеченных ячеек были переменной с разделенным запятыми.
<input type="checkbox" name="example[]" value="288" />
<input type="checkbox" name="example[]" value="289" />
<input type="checkbox" name="example[]" value="290" />
Например, если выбрано первое и последнее поле, выход будет:
var output = "288,290";
Как я могу сделать это с помощью jQuery?
Ответы
Ответ 1
Вы можете использовать селектор атрибутов :checkbox
и name (:checkbox[name=example\\[\\]]
), чтобы получить список флажков с name="example[]"
, а затем вы можете использовать фильтр :checked
, чтобы получить только выбранный флажок.
Затем вы можете использовать функцию .map
, чтобы создать массив из выбранного флажка.
DEMO
var output = $.map($(':checkbox[name=example\\[\\]]:checked'), function(n, i){
return n.value;
}).join(',');
Ответ 2
В настоящее время не проверено, но я считаю, что следующее должно работать:
var valuesArray = $('input:checkbox:checked').map( function () {
return $(this).val();
}).get().join();
Отредактировано, после небольшого перерыва, использовать собственный DOM, а не $(this).val()
(который в этом случае бесполезен):
var valuesArray = $('input:checkbox:checked').map( function() {
return this.value;
}).get().join(",");
Ответ 3
var valuesArray = $('input[name="valuehere"]:checked').map(function () {
return this.value;
}).get().join(",");
работает всегда для меня
Ответ 4
Как получить несколько значений флажков и вывести их в виде списка строк через запятую.
var favProgramming = [];
$.each($("input[name='programming']:checked"), function(){
favProgramming .push($(this).val());
});
alert("My favourite programming languages are: " + favProgramming);
ДЛЯ ДЕМО