【问题标题】:Storing numerical values from radio button input using jQuery使用 jQuery 存储来自单选按钮输入的数值
【发布时间】:2013-01-20 18:52:50
【问题描述】:

我正在做一个HTML5 测验,我在其中使用yesno 问题的单选按钮,然后为每个单选按钮分配01 的值,然后存储将数值作为变量,然后将所有变量相加即可为测验评分。

更新!!!

嘿!我进行了您建议的更改,但是当我调用变量时,它仍然显示为未定义:

这是我的html:

<form class="answer" id="question_one">
  <input type="radio" class="styled" name="first_answer" value="1"/><!-- POSITIVE ANSWER -->
  <div class="answer_text">Yes</div>
  <input type="radio" class="styled" name="first_answer" value="0" /><!-- NEGATIVE ANSWER -->
  <div class="answer_text">No</div>
</form>

这是我的 JavaScript:

$('#question_one input:radio[name=first_answer]').on('change', function () {
var first_question = parseInt(
    $("input[name=first_answer]:checked").val()
    );

}); 我试图通过仅针对 name=first_asnwer 的单选按钮来为 jQuery 对象包含更多的特殊性。也许我搞砸了?


【问题讨论】:

  • 附带说明,在您的 HTML 中,两个输入都以“first_answer”作为名称。
  • @are - 这就是允许它们充当单选按钮的原因。如果不属于同一组(由 name 属性定义),则它们都可以被单击并且没有开/关的切换效果。
  • 嗯,单选按钮需要具有相同的名称才能互斥。这样,用户就不能检查是和否。
  • @are - 你可以看到区别in this little demo
  • 是的,很抱歉误解了他的设置,我认为第二个单选框是对问题的单独回答。看到 jQuery 正在引用 second_answer。

标签: javascript jquery html forms radio-button


【解决方案1】:

我认为您的问题是对$(document).ready() 函数的理解。该函数在页面的所有依赖项都加载完毕后执行——CSS、JavaScript 等...

执行此函数后,您已经设置了变量,这可能在您单击第一个单选按钮之前!这里的解决方案是仅在用户完成回答后计算值。可能在无线电元素的更改事件上 -

$(document).ready(function () {
  $('input:radio').on('change',function(){
    var $first_question = parseInt($("input[name=first_answer]:checked").val());
    var $second_question = parseInt($("input[name=second_answer]:checked").val());
    $first_question = $first_question? $first_question : 0; 
    $second_question = $second_question? $second_question : 0;
    var $total_score = $first_question + $second_question;
    alert($total_score);
  });
});

Here is a simple demo

【讨论】:

  • @are - 哈哈......这也是第二次尝试;)
  • 嘿!感谢所有的帮助!我进行了您建议的更改,但是当我调用 var first_question 时,它仍然未定义。我已经用新代码更新了问题。
  • @laz - 您必须确保两组单选按钮实际上都具有 :checked 值。这里发生的情况是,当您单击第一个单选元素时,它也尝试计算 second_answer 的值 - 但还没有值。
  • @laz - 查看我的答案的更新。您需要做的就是确保为获得最终分数而添加的值都存在。
  • @laz - 很高兴为您提供帮助...祝您编码愉快!
猜你喜欢
  • 1970-01-01
  • 2015-02-05
  • 2017-06-27
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 2019-02-06
相关资源
最近更新 更多