数値以外の文字を拒否する 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/