【发布时间】:2013-10-29 08:27:29
【问题描述】:
我正在寻找一种从单选按钮中获取价值的方法。我这里有html。
<div id="main_">
<div class="facts_div">
<span class="question"></span>
<ul></ul>
</div>
<div id = "next_button">
<form>
<input id="x" type="button" class="myBtn" value="Press Me">
</form>
</div>
</div>
</div>
这是 Jquery 代码。
$(document).ready (function () {
//
var answers =
[["Fee","Fi","Fo"],
["La","Dee","Da"]],
questions =
["Fee-ing?",
"La-ing?"],
corAns = ["Fee", "La"];
var counter = 0;
var correctAnswers = 0;
var $facts = $('#main_ .facts_div'),
$question = $facts.find('.question'),
$ul = $facts.find('ul'),
$btn = $('.myBtn');
$btn.on('click', function() {
if (counter < questions.length) {
$question.text(questions[counter]);
var ansstring = $.map(answers[counter], function(value) {
return '<li><input type="radio" name="ans" value="0"/>'
+ value + '</li>'}).join('');
$ul.html(ansstring);
alert($('input[name="ans"]:checked').val())
//if ($('input[name=ans]:checked').val() == corAns[counter]) {
//correctAnswers++;
//}
}
else {
$facts.text('You are done with the quiz ' + correctAnswers);
$(this).hide()
}
counter++;
});
//
});
如您所知,它一直返回未定义,我不太确定自己做错了什么。
顺便说一句,价值在于衡量我正在做的测验中这是正确还是错误的答案。所以,最终我需要在 if 语句中使用array[counter]。但是,我把它拆开来测试和调整并弄清楚如何获得价值。
【问题讨论】:
-
页面加载是否有任何检查?
-
我不知道该怎么做,所以没有。
-
因此,在您的代码中,您会在页面加载时提醒选中的单选按钮值,但由于在页面加载时未检查任何内容,因此您收到未定义
-
那么,我应该嵌套另一个处理单选按钮的onclick,然后将值添加到
correctAnswers吗? -
好吧,我不知道我是否在这里不清楚,但也许我应该只发布整个测验,而不是这个 sn-p。我想动态地循环问题,然后在选择单选按钮选项时,返回要测试的值。如果它实际上是正确答案,我希望将其添加到正确答案中。
标签: jquery jquery-selectors radio-button