2014-12-09 7 views
0

У меня есть следующий код для получения значений всех отмеченных флажков. Удивительно последний элемент массива приходит как «Массив».Последний элемент массива приходит как «массив»

var selected = []; 
$('#checkboxes input:checked').each(function(){ 
    selected.push($(this).attr('value')); 
}); 

Даже если установлен только один флажок, он добавляет дополнительный элемент в массив. массив будет выглядеть следующим образом:

selected[0]=Dove 
selected[1]=Array 

Что может быть проблема с этим? Я не могу найти повода для этого. Может ли кто-нибудь помочь?

HTML код

<ul id='checkboxes' class="list-style1"> 
<?php foreach($brands as $row){ ?> 
<span class='checkbox-wrapper' id='<?php echo $brand; ?>'> 
<li><input type='checkbox' value='<?php echo $row['brand']; ?>'> 
<label for='<?php echo $row['brand']; ?>'><?php echo $row['brand']; ?></label> 
</li></span> 
<?php } ?> 
</ul> 
+1

Вы также можете добавить код html. – asimshahiddIT

+0

У вас, вероятно, есть вход с именем 'name =" name [] "' – andrew

+0

Работает для меня с тем же фрагментом кода. http://jsfiddle.net/ros2w6ym/1/ – vivek

ответ

1
var checkedValues = $('#checkboxes input:checked').map(function() { 
return this.value; 
}).get(); 

вернет выбранное значение флажка в массиве.

referrence link

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