2012-02-19 12 views
2

入力値を値 "青"と照合する単純なjavascriptフォームを作成しています。今、あなたが "青"を入力すると、それは間違っていると言われますが、それ以上の文字を追加すると正しいと言います。 1文字の遅延があるようですので、「青」と入力すると「青」しか得られません。Javascript onkeypressイベントは発生しますが、入力テキスト値が正しくありません

<html> 
<head> 
<title>Favorite Color</title> 
</head> 

<body> 
<h1>Quiz Time</h1> 
<h2>What is your favorite color?</h2> 

<p>Your Answer: <input type="text" id="txtinput" /></p> 
<p id="message"></p> 

<script type = "text/javascript"> 
function init() { 
    var inp = document.getElementById("txtinput"); 
    inp.onkeypress=checkAnswer; 

    checkAnswer(); 
} 

onload = init; 

function checkAnswer() { 
    var text = document.getElementById("txtinput"); 
    var msg = document.getElementById("message"); 

    var sol = "blue"; 
    var ans = text.value; 
    ans = ans.toLowerCase(); 

    if (ans.length <=0) { 
     msg.innerHTML="<span style=\"color:blue;\">Enter Something.</span>"; 
    } 
    else if (ans == sol) { 
     msg.innerHTML="<span style=\"color:green;\">Correct!</span>"; 
    } else { 
     msg.innerHTML="<span style=\"color:red;\">Wrong!</span>"; 
    } 
} 

</script> 
</body> 
</html> 
+0

は、あなたは私の答えを試してみましたか? –

+0

うん、それは働いた、ありがとう! :) – CaptainCodeman

答えて

6

変更代わりに

れるonkeypress
inp.onkeyup=checkAnswer; 
+0

ありがとう、それはそれをやった! – CaptainCodeman

1

の onkeyupののイベントは、私が「IE < 9のpropertychangeイベントへのフォールバックとHTML5 inputイベントを使用します。ここでは、コードですこれについて何度も書かれています。ここでは2つの例です:

+0

ありがとう、私はそれをチェックします。 – CaptainCodeman

関連する問題