0

数値以外の文字を拒否する JavaScript 関数があります。

$(".number").keypress(this.EnsureNumbers);

EnsureNumbers: function (event) {
   var value = $(this).first().val();

   value = value.substring(0, $(this)[0].selectionStart) + String.fromCharCode(event.keyCode) + value.substring($(this)[0].selectionEnd);
   if (!value.match(/^\d+$/)) {
      event.preventDefault();
   }
}

この機能により、ユーザー (Chrome/IE を使用している場合) は、(SHIFT キーを使用して) 数字の任意の部分を選択し、選択した数字/文字を変更できます。

しかし、Firefox では、この方法では Backspace を押したり、左右のキーを使用したりすることはできません。

繰り返しますが、Chrome と IE (IE8 でさえ) は問題なく動作します。Direfox のバグを知っている人はいますか? それとも私からですか?

Firefox 22 を使用しています。

例を見てみましょう: http://jsfiddle.net/TR8t4/

4

2 に答える 2

0

はい、Firefox のバグです。keypress編集キーと矢印キーを使用すると、イベントがトリガーされます。これらのキーはトリガーする必要がありますが、トリガーkeydownしませんkeypress

この不適切な動作は、QuirksModeの互換性マトリックスに記載されています。

于 2013-08-06T07:19:45.267 に答える