2016-08-15 9 views
1

ハンドヘルドスキャナウェブサイト(PocketPC)用のページです。そのため、キーボードの数字1を押したときにデバイスを簡単に操作できるように、下部1が送信されます。なぜ私のために働いていないのかわかりません。キー番号プレスフォーム

function check1(e) { 
 
    if (e.KeyCode == 49) { 
 
    document.forms[0].submit(); 
 
    } 
 
}
<form id="form1" name="form1" method="post" action="test.php"> 
 
    <input type="submit" name="button" id="button" value="Submit" onkeypress="check1(event)" /> 
 
</form>

おかげ

+0

少しの詳細をお手伝いします。 「うまくいかない」とはどういう意味ですか?バグを再現する[plunker](https://plnkr.co/)は、 – Tdy

+0

@Tdyが役に立ちました。 OPに代わって編集を行った。 – Iceman

答えて

1

あなたは、文書全体と、この場合だけではなく、その<input>にイベントを添付する必要があります。これは、<input>にフォーカスがない場合にアクションイベントをトリガーしたいからです。フォーカスがある場合にのみアクティブ化されます。

私は、変更を行った:

スニペットを見て:

document.addEventListener("keypress", function(event) { 
 
    var keycode = (event.keyCode ? event.keyCode : event.which); 
 
    if (keycode == '49') { 
 
    document.forms[0].submit(); 
 
    } 
 
});
<form id="form1" name="form1" method="post" action="test.php"> 
 
    <input type="submit" name="button" id="button" value="Submit"/> 
 
</form>

+0

はur編集を承認しました。 yes "は' onkeypress'の必要がなくなりました。 – Iceman

0

onkeypressイベントは、ドキュメント全体ではなく、あなたの入力ボタンでトリガーされます。だから、そのようなあなたのイベントハンドラを設定する必要があります。

var form1 = document.getElementById('form1'); 
document.addEventListener('keypress', function (e) { 
    if (e.keyCode === 49) { // note camel casing: keyCode, not KeyCode 
     form1.submit(); 
    } 
}); 
+0

私にとってはうまくいかず、キー番号1を押しても何も起きません。しかし、私は13(キーを入力)にkeyCodeを変更する場合は動作します。 – Fares

0

それは働く:

$(function(){ 
    $('*').keyup(function(e){ 
     if(e.keyCode=='49'){ 
     document.forms[0].submit(); 
     }  
    }) 
}) 
0

A jQueryのアプローチ

$(document).on('keypress',function(e){ 
if(e.keyCode === 49){ 
    $('#form1').submit(); 
} 
})