所以我知道这段代码很长。对不起,但为了便于阅读,我不会牺牲空间。当我测试这段代码时,控制台给了我这个错误:
ReferenceError: Can't find variable: useranswer
doMath
onclick
这是一个测验,可以通过按我的"电子邮件测验"自动通过电子邮件发送。按钮。
每个变量的命名为" a **"是无线电输入的布尔状态。我正在检查每个问题的价值,以便用户回答每个问题。然后,如果答案匹配,我将其与正确的答案和增量分数进行比较。
我在电子邮件测验功能方面也存在一些问题......我不确定问题是什么。
对这些问题的任何见解?
<!DOCTYPE HTML>
<html>
<!--========================================================================-->
<script type="text/javascript">
function doMath()
{
//Score
var score = 0;
// arrays to store answers, and user submited answers.
var answer = new Array();
var userAnswer = new Array();
// Quiz answers:
answer[0] = "e";
answer[1] = "b";
var a11 = document.getElementById('answer1-1').checked;
var a12 = document.getElementById('answer1-2').checked;
var a13 = document.getElementById('answer1-3').checked;
var a14 = document.getElementById('answer1-4').checked;
var a15 = document.getElementById('answer1-5').checked;
var a21 = document.getElementById('answer2-1').checked;
var a22 = document.getElementById('answer2-2').checked;
var a23 = document.getElementById('answer2-3').checked;
var a24 = document.getElementById('answer2-4').checked;
var a25 = document.getElementById('answer2-5').checked;
// checks users answer for first question:
if(a11){
useranswer[0] = "a";
}
else if(a12){
useranswer[0] = "b";
}
else if(a13){
useranswer[0] = "c";
}
else if(a14){
useranswer[0] = "d";
}
else{
useranswer[0] = "e";
}
// checks users answer for second question:
if(a11){
useranswer[1] = "a";
}
else if(a12){
useranswer[1] = "b";
}
else if(a13){
useranswer[1] = "c";
}
else if(a14){
useranswer[1] = "d";
}
else{
useranswer[1] = "e";
}
//adds up score:
if(userAnswer[0] == answer[0]){
score++;
}
if(userAnswer[1] == answer[1]){
score++;
}
emailQuiz(score);
console.log("doMath is working");
}
////////////////////////////////////////////////////////////////////////
</script>
<script>
////////////////////////////////////////////////////////////////////////
function emailQuiz(score)
{
var test = "\n\n You scored " + score + "/2 on the test.";
window.open('mailto: noah.gary394@topper.wku.edu'
+ '?subject= quiz answers'
+ '&body= Your quiz results:' + escape(test));
console.log("emailQuiz is working");
}
////////////////////////////////////////////////////////////////////////
</script>
<!--========================================================================-->
</head>
<button type="button" onclick="doMath();emailQuiz();">Email Quiz</button>
</body>
<!--========================================================================-->
</html>
答案 0 :(得分:5)
JavaScript中的变量区分大小写。
userAnswer != useranswer
这可能看起来并不明显,因为JavaScript会自动将任何非var
ed varible提升到它首次分配的全局命名空间。