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 的数字?

例如,如果用户键入50,然后键入1after,则不会显示 1。但是,如果用户键入0after,则会显示500。如果用户尝试键入968它也不会显示8,它只会显示96

希望这是有道理的。

4

3 回答 3

0

你真的不应该使用这样的方法。这工作得更好:

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

但是,如果您坚持,请使用现有代码并将该return行替换为:

return /\d/.test(keyChar) && this.value <= 500;
于 2013-04-22T22:09:41.450 回答
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

该行将是

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

演示

但是,我仍然建议不要挂钩和防止keypress事件的默认值 -如果输入的值无效,则执行事件并显示错误消息keyup。或者使用具有 min 和 max 属性change的 HTML5 。<input type="number" />

于 2013-04-22T22:22:23.613 回答