1

HTML入力ボックスが数値入力のみを受け入れるようにするために、非常に単純なクラスセレクターを作成しました

$(".numericOnly").keypress(function (e) {
   if (e.keyCode == 13) return true;
   if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) 
      return false;     
});

次に、入力ボックスがある場合は、それに class="numericOnly" を割り当てるだけで、数値入力のみを受け入れるようになります。

keyCode 13 はエンター キーで、関数がインターセプトしてブロックするのを防ぎます。

Chrome ではうまく動作し、IE 9 では奇妙に動作しますが、firefox では失敗します。理由がわからない。スローされるエラーはありません。

4

2 に答える 2

1

keyCode押された(または)キーの属性名はcharCode、ブラウザによって異なります。event.which代わりに使用してみてください。これにより、正規化されます。

于 2012-11-10T18:52:52.690 に答える
1

keyCodekeydown および keyup ハンドラで設定されます。 charCodekeypress ハンドラーで設定され、どの文字が入力されたかを示します (異なるキーボード レイアウトが存在するため、どのキーが押されたかとは異なります)。

于 2012-11-10T20:55:22.737 に答える