2014-02-20 3 views
0

У меня есть радио кнопки, как:JQuery селектор массива радио

<input type="radio" value="a" name="questions[0]"> 
<input type="radio" value="b" name="questions[0]"> 
<input type="radio" value="c" name="questions[0]"> 
<input type="radio" value="d" name="questions[0]"> 

<input type="radio" value="a" name="questions[1]"> 
<input type="radio" value="b" name="questions[1]"> 
<input type="radio" value="c" name="questions[1]"> 
<input type="radio" value="d" name="questions[1]"> 

Как мне проходное это с JQuery? Я хочу подтвердить, что ответ был дан для каждого вопроса. Благодарю.

Редактировать: или есть даже способ получить длину массива вопросов?

ответ

1
$("#myForm input[type=radio]").each(function() { 

      //whatever you need  

}); 
+0

Может ли это быть более конкретным для имени, то есть вопросов? – dumkat

+0

Вы можете использовать '$ this.attr ('name')' в цикле. – ltalhouarne

+0

'$ (this) .attr ('name')' –

1

$('[name="questions[1]"]:checked').val() дает проверенное значение вопроса 1.

Или, как показано ниже, получить проверенное значение с именем:

$('input[type=radio]:checked').each(function() { 
    console.log($(this).val(), $(this).attr('name')); 
}); 
+0

Нужно пройти через них, не зная, сколько вопросов есть, если это возможно. – dumkat

+0

@dumkat См. Редактирование. – xdazz

0

Вы можете сделать что-то вроде этого:

var rgroups = []; 
$('input:radio').each(function (index, el) { 
    var i; 
    for (i = 0; i < rgroups.length; i++) 
    if (rgroups[i] == $(el).attr('name')) return true; 
    rgroups.push($(el).attr('name')); 
}); 
rgroups = rgroups.length; 

$('#test').click(function() { 
    if ($('input:radio:checked').length < rgroups) alert('You must fill in all the fields.'); 
    else alert("You're done!"); 
}); 

Fiddle Demo

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