【问题标题】:How to get the value of an input radio button and do something based on answer?如何获取输入单选按钮的值并根据答案做某事?
【发布时间】:2014-11-09 23:03:54
【问题描述】:

我基本上是在做一个 10 个问题的测验。我知道有很多方法可以做到这一点,并且有很多关于如何获取输入单选按钮值的答案,但我就是想不通!我将 Foundation 5 的 Abide Validation 用于“required”属性和“on('valid.fndtn.abide')”,这只是确保现在选择了答案。

HTML

<h2>Choose one answer:</h2>
<div class="radio">
    <div class="input-radio"><input type="radio" name="question_10" value="Wrong" id="option_37" required><label for="option_37">Answer 37</label></div>
    <div class="input-radio"><input type="radio" name="question_10" value="Wrong" id="option_38" required><label for="option_38">Answer 38</label></div>
    <div class="input-radio"><input type="radio" name="question_10" value="Wrong" id="option_39" required><label for="option_39">Answer 39</label></div>
    <div class="input-radio"><input type="radio" name="question_10" value="Correct" id="option_40" required><label for="option_40">Answer 40</label></div>
</div>

我现在拥有的Javascript(没有其他东西)。现在即使我选择了正确的答案,这也会返回“否”。如果我将所有答案都设为“正确”,它将返回“是”。

$(document).ready(function(){
    $('.form-prepare').on('valid.fndtn.abide', function(e) {
        var answer10 = $("input[name='question_10']").val();

        if (answer10 === "Correct") { alert("Yes!"); } 
        else { alert("No!"); 
        e.preventDefault();
    });
});

编辑:删除了问题的第二部分,因为我认为它本身可能是它自己的问题。根据答案,我错过了输入变量的 :checked 部分。谢谢!

【问题讨论】:

  • 我觉得您的问题更像是“帮助我构建我的功能”,而不是任何明确的问题。除了“帮助我让它工作”之外,有没有可以为您回答的具体问题?
  • 请注意,我只回答了下面问题的第一部分(正确获取单选按钮的值)。第二部分(使这个代码足够模块化以处理更多问题)应该(在我看来)是一个单独的问题,一旦你尝试自己解决它。作为您的引导,尝试查看 jQuery 的 .each() 方法,并枚举您的 .radio div,获取其中选中的单选按钮的值并将其推送到数组。
  • 这很有帮助。谢谢!

标签: javascript jquery html forms radio-button


【解决方案1】:

jQuery 的.val() 方法只会在选择器返回集合时返回第一个元素的值,因此您总是检索名称等于 question_10 的第一个输入的值。

要正确检索您的值,您需要将选择器限制为仅返回选中的元素,如下所示:

$("input[name='question_10']:checked").val();

【讨论】:

  • 感谢winterblood,这给了我一个前进的好地方。我真的被困在这一点上。我将把它标记为答案并继续努力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2018-10-16
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多