0

現在、入力に数字のみを入力できるスニペットがあります。

$('input').bind('keypress', function(event) { 
    var charCode = event.which;
    var keyChar = String.fromCharCode(charCode); 
    return /[0-9]/.test(keyChar); 
});

jsFiddle: http://jsfiddle.net/wgsPr/

これを調整して、500 を超える数字を入力できないようにするにはどうすればよいですか?

たとえば、ユーザーが を入力してから50a1を入力すると、1 は表示されません。ただし、ユーザーが aを入力0すると、 が表示されます500。ユーザーが入力しようとしても、968は表示されず8、 のみが表示され96ます。

うまくいけば、これは理にかなっています。

4

3 に答える 3

0
if ($(this).val() > 500) {
    $(this).val($(this).val().substr(0, $(this).val().length - 1));
    return false;
}

私は先に進み、これを自分で解決しようとしましたが、うまくいきました。基本的には値をチェックし、入力値全体が より大きい場合は最後の文字を削除します500。何か変更する必要がある場合はお知らせください。

于 2013-04-22T22:18:43.533 に答える
0

そのような方法は絶対に使用しないでください。これははるかにうまく機能します:

<input type="number" min="0" max="500" />

ただし、どうしても必要な場合は、既存のコードを使用して、次のreturn行に置き換えます。

return /\d/.test(keyChar) && this.value <= 500;
于 2013-04-22T22:09:41.450 に答える
0

行は

return /\d/.test(keyChar) && parseInt(this.value+keyChar, 10) <= 500;

(デモ)

keypressただし、イベントのデフォルトをフックして防止しないことをお勧めしkeyupますchange。イベントに移動し、入力の値が無効な場合はエラーメッセージを表示します。<input type="number" />または、min および max 属性を持つ HTML5 を使用します。

于 2013-04-22T22:22:23.613 に答える