最初に各イベントの違いを理解しましょう
キーダウン:コントロールが焦点を合わせたときにキーが押されたときに発生します
キープレス:コントロールが焦点を合わせたときにキーが押されたときに発生します
keyup:コントロールが焦点を合わせたときにキーがリリースされたときに発生します
1。キープレスは、主に文字や数字などのANSI文字を受け取るために使用されます。キーダウンおよびキーアップイベントプロセスでは、通常、PRSCRNを除くキーボード上のすべてのキーをキャプチャできます(特別なキーボードの特別なキーについては、ここでは説明しません。
2。キープレスは単一の文字のみをキャプチャできますが、キーダウンとキーアップはキーの組み合わせをキャプチャできます。
3.キープレスは、キーボードの物理的状態(シフトキー)を表示するのではなく、文字にのみ合格します。キープレスは、各文字の上限と小文字のフォームを異なるキーコード、つまり2つの異なる文字として解釈します。キーダウンとキーアップは、キー価値文字のサイズを決定できません。キーダウンとキーアップは、各文字の大文字と小文字形式を2つのパラメーターで解釈します。キーコード - 物理キー(AとAを同じキーとして返す)を表示し、シフト +キーのステータスを示し、AまたはAの1つを返します彼ら。
5.キープレスは、キーパッドの数値文字とプライマリキーボードを区別しませんが、キーダウンとキーアップはキーパッドの数値文字とプライマリキーボードを区別します。
6.キーダウンおよびキーアップイベントは、キーをリリースまたはリリース(キーアップ)したときに発生します。キーボードキーは通常すぐに押しのけられるため(これはマウスとは異なります)、これら2つのイベントのどれに大きな違いはありません。さらに、UPと他の2つの間には別の違いがあります。キーの修正された状態を判断するには、UPを使用する必要があります。
キーダウンイベントを使用してユーザー入力をブロックできます。たとえば、特定の入力フィールドは数値のみを入力できます。
キーボード上の数値キーのキーコード
[48-57]番号キー
[96-105]数値キーパッド
また、バックスペースのキー削除を許可します
コードは次のとおりです
コードコピーは次のとおりです。
var input = document.getElementById( 'number_ipt')
input.onkeydown = function(e){
var keycode = e.keycode
if(!isNumber(keyCode))falseを返します
}
//番号のみを入力できます
関数isNumber(keycode){
// 番号
if(keycode> = 48 && keycode <= 57)trueを返す
//小さな数字キーボード
if(keycode> = 96 && keycode <= 105)trueを返す
//バックスペースキー
if(keycode == 8)trueを返します
falseを返します
}