2012-03-13 3 views
4

Привет У меня есть следующая страница:jQuery флажки, как получить все выбранные флажки и добавить их в массив?

<input type="checkbox" name="fruit1" id="1" class="box">Banana<br /><br /> 
<input type="checkbox" name="fruit2" id="2" class="box">Cherry<br /><br /> 
<input type="checkbox" name="fruit3" id="3" class="box">Strawberry<br /><br /> 
<input type="checkbox" name="fruit4" id="4" class="box">Orange<br /><br /> 
<input type="checkbox" name="fruit5" id="5" class="box">Peach<br /><br /> 
<input type="button" id="groupdelete" value="clickme"><br /> 

$(document).ready(function(){ 

$('#groupdelete').on('click', function(){ 
    var names = []; 
    $('input:checked').each(function() { 

     names.push($('input:checked').attr("name") + $('input:checked').attr('id')); 

}); 
    console.log(names); 
}) 

}) 

То, что я пытаюсь сделать, это следующее:

Чтобы добавить отмеченные флажками в массиве , И после этого, я хотел бы иметь возможность передать значение в переменной php.

Когда я код Выполнение выражений сейчас, я получаю результат, как это:

[ "fruit22", "fruit22", "fruit22"]

Любая помощь будет глубоко признателен.

С уважением, Zoreli

ответ

12

Вы должны использовать this, а не 'input:checked' внутри функции .each(), чтобы обратиться к текущему элементу в наборе рассматривается. Если вы повторно используете селектор, вы снова получаете набор, тогда только когда-либо получаете атрибуты от первого элемента в наборе.

$('input:checked').each(function() { 
    names.push($(this).attr("name") + this.id); 
}); 
+0

Отлично, работает как шарм ... можете ли вы рассказать мне, как передать этот массив имен в переменной php? – Zoran

+0

Он также может использовать 'this.name' вместо того, чтобы отбрасывать' this' обратно в объект jQuery. 'prop' предпочтительнее над' attr' как из jQuery 1.7+ – mrtsherman

+0

И как передать значение имен в переменной php? Есть идеи? – Zoran

1

Изменить HTML для

<input type="checkbox" name="fruits[]" id="1" class="box">Banana<br /><br /> 
<input type="checkbox" name="fruits[]" id="2" class="box">Cherry<br /><br /> 
<input type="checkbox" name="fruits[]" id="3" class="box">Strawberry<br /><br /> 
<input type="checkbox" name="fruits[]" id="4" class="box">Orange<br /><br /> 
<input type="checkbox" name="fruits[]" id="5" class="box">Peach<br /><br /> 
<input type="button" id="groupdelete" value="clickme"><br /> 

А теперь, посмотрите на JQuery/JavaScript

$(document).ready(function(){ 
    $('#groupdelete').click(function() { 
     var marked = new Array(); 
     var k = 0; 
     $('input:checked').each(function(index,value) { 
      marked[k] = value; 
      k++; 
     });   
     alert(marked[0].id); 
    }); 
}); 

предупреждение просто дает вам демо путем доступа к прямой доступ по индексу массива.

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