0
JSゲームを少し作っていて、ユーザーの入力をできるだけ早くチェックしようとしているので、onKeyDown関数を使用しています。問題は、答えが5の場合は、5を押してからもう一度5を押すと、ユーザーの入力を認識することができます。なぜこれが起こっていますか?文字が実際にテキストボックスに追加され前キーを2回押しなければならないのはなぜですか?
var btn=0
var num=""
var digits=1
function quickanswer(){
if (document.getElementById("autocheck").checked==true&&document.getElementById("txt").value.length==digits){
document.getElementById("dots").innerHTML = ""
createdots()
document.getElementById("txt").value=""
document.getElementById("txt").focus()
document.getElementById("txt").style.color = "#000000"
}
}
function submitenter(){
var keycode = window.event.keyCode;
if (keycode == 13)
{
btnclick();
}
if (keycode < 47 || keycode > 58){
return false;}
}
<input id="txt" type="text" onKeyPress="return submitenter()" onKeyDown="quickanswer()"/>
されていますどのキーがonKeyDownで押されたかを取得する方法はありますか? – Sean
@Seanはい、 'submitenter'で既に得たようです:' var keycode = evt.keyCode || evt.which;ここで "evt"は、私がそれをクロスブラウザーにするために上記で説明したようなものです。 –