2015-01-15 32 views
-2

我今天在課堂上得到了一個任務 - 即時詢問用戶一個簡單的數學問題,如果他回答正確的警告與「正確」將彈出,如果不是「錯誤「的警報。JavaScript函數檢查用戶輸入但總是發帖「錯」

<body> 
<h1 style="text-decoration:underline">Math test!</h1> 
<p id="question"></p> 
<script> 
    var firstnum = Math.floor((Math.random() * 10) + 1); 
    var secondnum = Math.floor((Math.random() * 10) + 1); 
    var trueanswer = firstnum * secondnum; 
    function setquestion() { 
     document.getElementById("question").innerHTML = firstnum + " * " + secondnum; 
    } 
    setquestion(); 
    function checkuseranswer() { 
     var useranswer = document.getElementById("useranswer"); 
     if (trueanswer == useranswer) { 
      alert("Correct!"); 
     } 
     else { 
      alert("Wrong!"); 
     } 
    } 
</script> 
<h2>Press submit to test yourself</h2> 
<input type="text" id="useranswer" /> 
<input type="submit" id="submit" value="submit" onclick="checkuseranswer()" /> 

我認爲這個問題是無功useranswer沒有被正確地收到,但調試並沒有幫助的。我也嘗試將函數checkuseranswer放在botton中,但結果相同。 所有幫助表示讚賞。

+0

當你downvote請告訴OT爲什麼! –

+0

是的,這聽起來很奇怪你爲什麼downvote ...(?)downvotes轉換爲質量差或答案可以很容易地在網上找到或問幾次提前。在你的情況下,你知道'useranswer'是錯誤的一點。所以你可以調試它,打印價值,看看是什麼原因,並很容易得到答案。無論如何..不要猶豫..並帶着疑問來回答! – Riad

+0

你的說法就像我沒有嘗試過那樣,並相信我做過。即時學習javascript約2周,我花了最後2天在谷歌搜索解決方案。當我調試沒有值出現。如果本網站希望幫助剛剛開始的人變得更好,那麼我不應該在這裏,並應該繼續搜索互聯網,直到我無法完成這項任務,這會變得更加困難。指示說「保持開放態度」,但我只能得到不好的投票。這對我來說沒有意義。 – omriws

回答

3
var useranswer = document.getElementById("useranswer"); 

您正在比較DOM元素本身,而不是輸入的值。

var useranswer = document.getElementById("useranswer").value; 

一個元素永遠不會等於一個數字,不管你希望多少。

+0

謝謝!它現在有效。 – omriws

+1

並且對比較JavaScript類型時也感到高興,否則在比較之前,您還需要「parseInt」值。 – JCOC611

+0

有人可以告訴我爲什麼我變得不好投票?即時通訊只是問一個問題,因爲我是編程新手,還沒有太好的。 – omriws