2017-06-06 3 views
-5

私はparseIntを使用せずにこれを行う必要がありますが、私はそれを行う方法がわかりません。私はa * bの実際の値に対する答えをチェックしようとしています。私が間違っていると思うのは、私が実際にテキストボックスの値を取得することができないということです。それをする最善の方法は何ですか?javascript - if/elseがtrueを返すことはありませんか?

var answer = document.getElementById('answer'); 
 
var a = Math.floor((Math.random() * 12) + 1); 
 
var b = Math.floor((Math.random() * 12) + 1); 
 
document.getElementById('question').innerHTML = "What is " + a + " times " + b + "?"; 
 

 
function wrongRight() { 
 
    if (a * b == answer) { 
 
    document.getElementById('response').innerHTML = "Very good."; 
 
    } else { 
 
    document.getElementById('response').innerHTML = "No, please try again."; 
 
    } 
 
}
<p id="response"></p> 
 
<p id="question"></p> 
 
<!-- this is where the x * x = ? will be asked--> 
 
<p> your answer </p> 
 
<input type="text" id="answer"> 
 
<input type="button" value="Click" onClick="wrongRight()">

+2

「答え」はDOMノードであり、「a」と「b」は数字です。 – zzzzBov

+0

何か不足しているかもしれませんか? 'answer.value' ... – NewToJS

+2

' console.log(answer) 'を実行しただけであれば、問題に気づいたでしょう。 – Barmar

答えて

1

いや、あなたはDOMノードの数を比較しているコメントで述べたように。 wrongRightの機能では、answer+answer.valueに置き換えてください。プラスは文字列から整数に変換します。例えば

function wrongRight() { 
    if(a * b == +answer.value) { 
     document.getElementById('response').innerHTML = "Very good."; 
    } else{ 
     document.getElementById('response').innerHTML = "No, please try again."; 
    } 
} 
関連する問題