我基本上是在进行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部分。谢谢!
答案 0 :(得分:1)
jQuery的.val()
方法只会在选择器返回一个集合时返回第一个元素的值,因此您总是检索名称等于question_10的第一个输入的值。 / p>
要在您需要限制选择器仅返回checked元素后正确检索您所需的值,如下所示:
$("input[name='question_10']:checked").val();