1. ホーム
  2. javascript

[解決済み] テンキーのkeyCode値?

2023-05-24 12:30:57

質問

テンキーの数字は、キーボードの上部にある数字とは異なるキーコードを持っていますか?

ここに、キーアップイベントで実行されるはずのJavaScriptがありますが、キーコードが48から57の間である場合のみ、実行されます。以下はそのコードです。

$('#rollNum').keyup(function(e) {
    if(e.keyCode >= 48 && e.keyCode <= 57) { //0-9 only
        var max = 15;
        var textLen = $(this).val().length;
        var textLeft = max - textLen;
        . . . 

私の問題は、このコードがキーボードの上部に入力された数字に反応して実行されるだけで、テンキーから入力された数字に反応して実行されないことです。

答えは、テンキーが異なる keyCode 値を持っていることに違いないと考えていますが、その値を調べるにはどうしたらよいでしょうか。

どのように解決するのですか?

キーコードが違います。キーパッド0~9はキーコード 96 から 105

あなたの if の文は、そうでなければなりません。

if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105)) { 
  // 0-9 only
}

ここでは キーコードのリファレンスガイドです。


-- アップデート --

これは古い回答で keyCode は非推奨とされています。現在では、これを実現するための代替方法があります。 key :

if ((e.key >= 48 && e.key <= 57) || (e.key >= 96 && e.key <= 105)) { 
  // 0-9 only
}

ここでは の出力テスターです。 の出力テスターです。リンクをくれた @Danziger に感謝します。