2013-02-25 2 views
2

У меня есть форма с 29 выборами пар переключающих кнопок, каждая из которых имеет выбор «Да/Нет».Проверка нескольких наборов переключателей

Названия выборок увеличиваются так же, как и для каждого набора: ans1, ans2, ans3 ... ans29. Каждый из них имеет значение «да» или «нет»

Из этого следует более или менее, как это:

<input type="radio" id="yes1" name="ans1" value="yes"/> 
<input type="radio" id="no1" name="ans1" value="no"/> 

Я хочу написать функцию Javascript, чтобы проверить ответы при отправке формы. Я думал об использовании массива в цикле, но понятия не имею, как получить выделение в массив.

Очевидный длинный метод является повторяющимся if(ans1 = yes) {do something} if(ans2=yes){do something}. Я видел примеры getElementsByName, но не знаю, как реализовать его в простой функции цикла, чтобы проверить каждую итерацию.

+0

Пробовал ли вы использовать объект вместо массива? – slamborne

+0

Как вы хотите точно проверить? Каковы правила? –

+0

Почему нет принятого ответа? –

ответ

1

использование JQuery (http://jquery.com/) как

for(int i = 1; i < 30; ++i) 
{ 
    if ($('#yes' + i).val() == 'yes'){ do something } 
} 
5

Использование JQuery

$("input:radio:checked").each(function (index) { 
    var this$ = $(this); 
    var q = this$.attr('name'); 
    var a = this$.val(); 

    console.log('Question: ' + q + ', answer: ' + a); 
}); 

Этот фрагмент кода выбирает только проверенные радио кнопки, а затем выводит их на консоль. Вы можете делать все, что от вас требуется, q - это имя вопроса (например, ans1) и a - это сам ответ (то есть true of false).

См. Его in action.

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