2017-05-04 10 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

あなたのコードには多くの問題があるようです。 例えば、verdivar verdi = verblist[0][0];値が「1」が、あなたはラインでそれ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>

関連する問題