2015-05-09 3 views
0

У меня есть форма со многими группами переключателей, которые динамически генерируются из базы данных вопросов. Они выглядят так:Как получить все группы кнопок группы из формы submit

<input name="group{{../questionNumber}}" type="radio" id="q{{../questionNumber}}_{{answerLetter}}" value="{{answerLetter}}" /> 

где ((questionNumber}} только целое число (они идут в порядке от 1) и {{answerLetter}} будет письмо, начиная с A снова для каждого нового вопроса, а это означает, что вопрос 1, ответ 2 будет иметь name="group1" и id=q1_B.

Когда пользователь отправляет форму, я хотел бы получить все свои ответы, но до сих пор я только знаю, как получить ответ, явно печатал значение name свойства:

Template.Test.events({ 
    "submit #Test": function (event, template) { 

    // var element = template.find('input:radio[name=group1]:checked'); 
    // alert($(element).val()); 

    alert(event.target.group1.value) 

    return false; 
    } 
}); 

#Test является formid.

Как я могу динамически получить все значения value в массив? Также могу ли я легко получить количество групп радиообъектов внутри указанной функции или проще запросить это из моей базы данных?

+0

Как бы клиппи сказал: «Похоже, вы строите систему опроса ...» –

+0

Нет, это тест с множественным выбором. Но функционально то же самое. – Dan

ответ

1

Вы можете найти все отмеченные радио Whos имя начинается с «группой» этот путь:

var groups = {}; 
$('#Test').find('input[name^="group"]:checked').each(function(){ 
    var this_name = $(this).attr('name'); 
    var this_value = $(this).val(); 
    groups[this_name] = this_value; 
}); 

Теперь найденные радиостанции они ключи от объекта groups, так что вы можете считать их так:

var count = 0; 
for (var k in groups) 
    if (groups.hasOwnProperty(k)) 
     ++count; 

Значения радио являются значениями клавиш в этом объекте.

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