【问题标题】:How to get all radio button group selections from a form submit如何从表单提交中获取所有单选按钮组选择
【发布时间】:2015-05-09 16:55:07
【问题描述】:

我有一个包含多组单选按钮的表单,这些单选按钮是从问题数据库中动态生成的。它们看起来像这样:

<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 值放入一个数组中?我也可以在上述函数中轻松获取单选按钮组的数量,还是更容易从我的数据库中查询?

【问题讨论】:

  • 正如clippy所说,“看起来你正在构建一个调查系统......”
  • 不,这是一个多项选择测试。但功能相同。

标签: javascript forms meteor radio-button form-submit


【解决方案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;

单选值是该对象中键的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-16
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多