2
所以我知道這段代碼很長。對不起,但我不犧牲可讀性的空間。當我測試此代碼控制檯給了我這個錯誤:爲什麼控制檯無法找到我的變量?
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: [email protected]'
+ '?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>
我曾經認爲這是使JavaScript成爲編寫大型項目的糟糕語言的原因,但「使用strict」;'指令有助於捕獲像這樣的錯誤(通過在任何賦值之前強制var,以及其他有用的東西)。 –