0

我想知道是否可以使用 jQuery 执行以下任务:防止用户输入大于 10 或小于 0 的数字。

例如,像 9.10 这样的数字是可以的,但 81、10.01、11 或负数是错误的值。

为了更好地了解情况,验证是为了在测试后输入成绩。

谢谢你。

4

3 回答 3

2

此代码仅允许您在框中输入数字,并且不会接受任何会使数字小于 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;
    }

});

http://jsfiddle.net/WPdVq/

于 2012-04-10T21:24:08.120 回答
1

如果你想在他们退出输入字段时显示一些东西,你可以使用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('');
    }       
});         

jsfiddle 工作示例

或者,如果你想在每次击键后显示一些东西,你可以使用keyup事件。

于 2012-04-10T18:00:21.040 回答
0

I suggest this library: jquery-numeric

The homepage of the plug-in is here: http://code.webmonkey.uk.com/plugins/

There is a demo and use can viewsource to see the use of it:

http://code.webmonkey.uk.com/plugins/jquery.numeric/test.html

于 2013-02-04T08:17:14.350 回答