2017-05-04 52 views
0

如果用户在字段中输入正确答案,我试图获得全部答案。但它总是返回0不知道为什么。你能帮我解决它,请问我错了吗?用户输入不能与JavaScript中的数组进行比较

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Match It</title> 
</head> 
<body> 
<h1>Set Verbs in correct form</h1> 
<p> 
<table> 

      <tr> 

       <th scope="col">Match 1</th> 

       <th scope ="col">Match 2</th> 

      </tr> 

      <tr> 

       <td>one</td> 

       <td>two</td> 

       <td><input type="text" id="answer1" value=""></td> 

       <td>four</td> 

      </tr> 

      <tr> 

       <td>eleven</td> 

       <td><input type="text" id="answer2" value=""></td> 

       <td>thirteen</td> 

       <td>fourteen</td> 

      </tr> 

    </table> 

       <button onclick="readit()">Check Answer!</button> 

    <p id="p2"></p> 

</p> 

Hint: twelve or three 
<script type="text/javascript"> 

//array 

var verblist =[]; 

verblist[0] = ["one", "two", "three", "four"]; 

verblist[1] = ["eleven", "twelve", "thirteen", "fourteen"]; 

var verdi = verblist[0][0]; 

function readit() { 

var verb1 = document.getElementById("answer1").value; 

var verb2 = document.getElementById("answer2").value; 

//control input 

var CorrectAnswer = "0"; 

if(verb1.toUpperCase() == verdi[0][2]) 

{ 

    CorrectAnswer++; 

} 

if(verb2.toUpperCase() == verblist[1][1]) 

{ 

    CorrectAnswer++; 

} 

document.getElementById("p2").innerHTML = ("You given total " + CorrectAnswer + " Correct Answers."); 

} 
</script> 
</body> 
</html> 

只是检查,请帮我修复它,我尝试了不同的方式,但对我来说,它总是显示0回报。

回答

0

你的代码似乎有很多问题。 例如,var verdi = verblist[0][0];verdi值将是“一个”,但你试图指数INT0它在该行:if(verb1.toUpperCase() == verdi[0][2])

另外,该线路if(verb2.toUpperCase() == verblist[1][1])会造成问题。 因为在输入框中输入的任何东西的大写值将永远不匹配verblist[1][1]

这些是您可以先开始修复的东西。

0

toUpperCase应该是toLowerCase和你的威尔第可变心不是一个数组

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <meta charset="UTF-8"> 
 
\t <title>Match It</title> 
 
</head> 
 
<body> 
 
\t <h1>Set Verbs in correct form</h1> 
 
\t <p> 
 
\t \t <table> 
 

 
\t \t \t <tr> 
 
\t \t \t \t <th scope="col">Match 1</th> 
 
\t \t \t \t <th scope ="col">Match 2</th> 
 
\t \t \t </tr> 
 
\t \t \t <tr> 
 
\t \t \t \t <td>one</td> 
 
\t \t \t \t <td>two</td> 
 
\t \t \t \t <td><input type="text" id="answer1" value=""></td> 
 
\t \t \t \t <td>four</td> 
 
\t \t \t </tr> 
 
\t \t \t <tr> 
 
\t \t \t \t <td>eleven</td> 
 
\t \t \t \t <td><input type="text" id="answer2" value=""></td> 
 
\t \t \t \t <td>thirteen</td> 
 
\t \t \t \t <td>fourteen</td> 
 
\t \t \t </tr> 
 
\t \t </table> 
 

 
\t \t <button onclick="readit()">Check Answer!</button> 
 
\t \t <p id="p2"></p> 
 
\t </p> 
 
\t Hint: twelve or three 
 

 
<script type="text/javascript"> 
 

 
\t //array 
 
\t var verblist =[]; 
 
\t verblist[0] = ["one", "two", "three", "four"]; 
 
\t verblist[1] = ["eleven", "twelve", "thirteen", "fourteen"]; 
 

 
\t function readit() { 
 

 
\t \t var verb1 = document.getElementById("answer1").value; 
 
\t \t var verb2 = document.getElementById("answer2").value; 
 

 
\t \t //control input 
 
\t \t var CorrectAnswer = "0"; 
 

 
\t \t if(verb1.toLowerCase() == verblist[0][2]){ 
 
\t \t \t CorrectAnswer++; 
 
\t \t } 
 

 
\t \t if(verb2.toLowerCase() == verblist[1][1]){ 
 
\t \t \t CorrectAnswer++; 
 
\t \t } 
 

 
\t \t document.getElementById("p2").innerHTML = ("You given total " + CorrectAnswer + " Correct Answers."); 
 
\t } 
 
</script> 
 
</body> 
 
</html>

相关问题