jQuery を使用して次のタスクを実行できるかどうかを知りたい: ユーザーが 10 より大きい数値または 0 より小さい数値を入力できないようにする。
たとえば、9.10 のような数値は問題ありませんが、81、10.01、11、または負の数値は間違った値です。
状況をよりよく理解するために、検証はテスト後に成績を入力するためのものです。
ありがとうございました。
このコードでは、ボックスに数値を入力することのみが許可され、数値が 0 未満で 10 を超える入力は受け入れられません。
var $grade = $('#grade');
$grade.keydown( function (e) {
var code = e.which,
chr = String.fromCharCode(code), // key pressed converted to s string
cur = $grade.val(),
newVal = parseFloat(cur + chr); // what the input box will contain after this key press
// Only allow numbers, periods, backspace, tabs and the enter key
if (code !== 190 && code !== 8 && code !== 9 && code !== 13 && !/[0-9]/.test(chr)) {
return false;
}
// If this keypress would make the number
// out of bounds, ignore it
if (newVal < 0 || newVal > 10) {
return false;
}
});
入力フィールドを出るときに何かを表示したい場合は、changeイベントを使用できます。
$('.target').change(function() {
if($(this).val() > 10) {
// Do something, like warn them and/or reset to empty text.
alert('Greater than 10.');
$(this).val('');
}
});
または、各キーストロークの後に何かを表示したい場合は、keyupイベントを使用できます。
このライブラリをお勧めします: jquery-numeric
プラグインのホームページはこちら: http://code.webmonkey.uk.com/plugins/
デモがあり、ビューソースを使用してその使用法を確認できます。
http://code.webmonkey.uk.com/plugins/jquery.numeric/test.html