2012-03-06 2 views
8

У меня есть несколько флажков с массивом имен, и я хочу, чтобы выходные данные отмеченных ячеек были переменной с разделенным запятой списком.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?

+0

возможно дубликат [JQuery массив всех выбранных флажков (по классам)] (http://stackoverflow.com/ Вопросы/2099164/jquery-array-of-all-selected-checkboxes-by-class) –

ответ

5

В настоящее время ООН-тестирования, но я считаю, что должно работать:

var valuesArray = $('input:checkbox:checked').map(function() { 
    return $(this).val(); 
}).get().join(); 

Edited, после небольшого перерыва, чтобы использовать родной DOM, а не $(this).val() (это неоправданно дорого, в контексте):

var valuesArray = $('input:checkbox:checked').map(function() { 
    return this.value; 
}).get().join(","); 
19

вы можете использовать :checkbox и селектор атрибута имени (:checkbox[name=example\\[\\]]), чтобы получить список флажка с name="example[]", а затем вы можете использовать :checked фильтр, чтобы получить только Selec ted.

Затем вы можете использовать функцию .map, чтобы создать массив из выбранного флажка.

DEMO

var output = $.map($(':checkbox[name=example\\[\\]]:checked'), function(n, i){ 
     return n.value; 
}).join(','); 
+0

Хммм, похоже, что он возвращает список всех (отмеченных) флажков даже с теми, у кого нет имени примера []. например http://jsfiddle.net/6LCvN/. Любая идея почему? – Hugh

+0

@Hugh Пропустил это как-то, но вам нужны двойные косые черты, чтобы избежать «[' и ']' http://jsfiddle.net/6LCvN/22/ или обернуть кавычки http://jsfiddle.net/hmtdtwbr/ –

3
var valuesArray = $('input[name="valuehere"]:checked').map(function() { 
     return this.value; 
     }).get().join(","); 

работает для меня всегда

Смежные вопросы