【发布时间】:2014-06-25 16:52:14
【问题描述】:
我的第一个问题!...我是一名大学生,正在尝试做一个简单的多项选择测验。我几乎完成了它(它的骨架),但无法计算用户的最终分数。测验可以在线查看:eyeballs.site88.net(这只是测验,所以没有其他分散注意力的代码)。
我认为这种方法很简单:
1.从0分开始。
2.当用户点击“答案”按钮时,(对于每个问题)检查是否选中了正确答案旁边的单选按钮
3.如果是,加1分
4. 如果不是,什么都不做
5.最后一题检查完毕后,向用户公布分数
除了 .attr('checked') 部分之外,所有代码似乎都可以正常工作。我用 .val() 替换了它,分数加起来很好,最后宣布了。但是,即使检查了正确的答案,分数也不会加 1。我之前看过 .attr('checked') - 它检查是否选中了“与上面相同”复选框:如果选中,则 div 滑出视图;如果未选中,则 div 会滑回视图中。但我什么也做不了!
下面的代码是一个简化版(只是问题1,只有2个答案选择):
HTML
<form action=”xxxxx” method=”post” class=”quiz”>
<ul>
<li class="quizQuestionAndAnswer" id="question1" >
<dl>
<dt class="quizQuestion"><strong>1. An animal with horizontal, rectangular pupils is a:</strong>
</dt>
<dd class="quizAnswers">
<div>
<input type="radio" name="question1Answer" id="question1answerA" value="goat" >
<label for="question1answerA">goat</label>
</div>
<div>
<input type="radio" name="question1Answer" id="question1answerB" value="elephant" >
<label for="question1answerB">elephant</label>
</div>
</dd>
</dl><!--end question1-->
</li>
</ul>
</form>
JAVASCRIPT
<script>
$(document).ready(function() {
var score=0,
$questionAndAnswer=$('.quizQuestionAndAnswer');
$questionAndAnswer.on('click', '.answersQuizButton', function() {
if( $('#question1answerA').attr('checked') ) {
score=score+1;
} //end if
if( $('#question2answerC').attr('checked') ) {
score=score+1;
} //end if
alert(score);
}); //end on (click)
}); //end ready
</script>
如果有任何建议,我将不胜感激! :) uphillfun ps:我使用的是 jQuery 1.11.0,Firebug 控制台没有显示任何错误!
【问题讨论】:
-
只是好奇 -
$questionAndAnswer是在哪里定义的? -
顺便说一句,this 会给你它不工作的原因
-
抱歉,我是新手(很紧张!)。我刚刚编辑了问题以包含您质疑的变量。它在原始代码中。 :)
-
Np,请检查我提供的链接,它会告诉您为什么
.attr()不起作用,但.prop()会。
标签: jquery radio-button attr checked