繁体   English   中英

如何获取输入单选按钮的值并根据答案执行某些操作?

[英]How to get the value of an input radio button and do something based on answer?

我实质上是在做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的.val()方法将仅返回第一个元素的值,因此您总是在检索名称等于question_10的第一个输入的值。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM