2

ユーザーが数値を入力するテキスト フィールドがあり、その数値を整数にしたいと考えています。これを行うには、ユーザーが小数点を入力しても無視したいと考えています。

現在、キーアップ時にフィールドの値をチェックする JavaScript 関数があり、最後に入力された文字が小数点の場合は削除されます。これにより、ユーザーが小数点を入力すると、小数点が表示されてから消えるという効果が作成されます。小数点が表示されないようにする方法はありますか?

4

4 に答える 4

6

キープレス イベントを使用します。

http://jsfiddle.net/wAJp7/1

$('input').on('keyup', function (e) {
    if (e.which === 46) return false;
}).on('input', function () {
    var self = this;
    setTimeout(function () {
        if (self.value.indexOf('.') != -1) self.value = parseInt(self.value, 10);
    }, 0);
});
于 2013-06-04T17:57:26.320 に答える
1
// don't do anything unless a number key is pressed
$("input").on("keypress", function(event) {
  if (event.which < 48 || event.which > 57) {
    event.preventDefault();
  }
});

おそらく、これは最もユーザーフレンドリーな解決策ではありません。何らかの方法でフィールドを無効としてマークし、それを修正するように依頼する方がよりフレンドリーですが、これにより、整数を取得することが保証されます。

JS ビンのデモ

于 2013-06-04T18:06:04.993 に答える
1

.keydown()どのキーが押されたかをチェックする関数を使用します。「.」の場合、preventDefault().

$('input').keydown(function(e){
    var kCode = (e.which || e.keyCode)
    if(kCode == 190 || kCode == 110) return false;
    if(e.which === 86 && (e.ctrlKey || e.metaKey)) return false;
})

フィドル: http://jsfiddle.net/PsqhJ/1/

編集:ctr + vにユーザーを防止する機能を追加しました。

于 2013-06-04T17:59:40.600 に答える