2

重複の可能性:
jQueryを使用してHTML入力ボックスで数値(0-9)のみを許可する方法は?

特定のテキストボックス内に数字のみを許可するjqueryスニペットがあります。ユーザーが文字/特殊文字を入力すると、その文字がテキストボックスにまったく入力できなくなります。しかし、機能しません。

$("#PostalCode").keydown(function (e) {
            if (e.shiftKey || e.ctrlKey || e.altKey) { // if shift, ctrl or alt keys held down
                e.preventDefault();         // Prevent character input
            } else {
                var n = e.keyCode;
                if (!((n == 8)              // backspace
                        || (n == 46)                // delete
                        || (n >= 35 && n <= 40)     // arrow keys/home/end
                        || (n >= 48 && n <= 57)     // numbers on keyboard
                        || (n >= 96 && n <= 105))   // number on keypad
                        ) {
                    alert("in if");
                    e.preventDefault();     // Prevent character input
                }
            }
        });

数字以外 (文字または特殊文字) を入力するたびに警告メッセージが表示されます。これは、ロジックがおそらく正しいことを意味します。それでも文字はテキスト ボックス内に表示されます。これは、何か問題があることを意味しe.preventDefault()ます。誰でも助けることができますか?

4

2 に答える 2

0

このOpera preventDefault() on keydown イベントによると、一部のブラウザはキーダウン時の preventDefault をサポートしていません。これはあなたに当てはまるでしょうか?

代わりにキープレスを試すことができますか?

または、正規表現を使用して無効な文字を "" に置き換えることもできます

于 2012-07-18T13:03:57.673 に答える
0

おかしなことに、間に警告がない場合は、コードが壊れて警告が表示されます。

于 2012-07-18T13:10:27.557 に答える