如何从表单提交中获取所有单选按钮组选择

时间:2015-05-09 16:55:08

标签: javascript forms meteor radio-button form-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;
  }
});

#Testform id

如何动态地将所有value值都添加到数组中?我也可以在上面的函数中轻松获得radiobutton组的数量,或者从我的数据库中查询它是否更容易?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式找到名称以“group”开头的所有已检查无线电:

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;

无线电值是该对象中键的值。