我目前有一个片段,只允许将数字输入到输入中:
$('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
,然后键入1
,则不会显示1.但是,如果用户输入0
之后,它将显示500
。如果用户尝试键入968
它不会显示8
,则只会显示96
。
希望这是有道理的。
答案 0 :(得分:0)
你真的不应该使用这样的方法。这样做效果更好:
<input type="number" min="0" max="500" />
但是,如果您坚持,请使用现有代码并将return
行替换为:
return /\d/.test(keyChar) && this.value <= 500;
答案 1 :(得分:0)
if ($(this).val() > 500) {
$(this).val($(this).val().substr(0, $(this).val().length - 1));
return false;
}
我继续尝试自己解决这个问题。基本上,它检查值并删除最后一个字符,使其整个输入值大于500
。如果有任何修改,请告诉我。
答案 2 :(得分:0)
该行将是
return /\d/.test(keyChar) && parseInt(this.value+keyChar, 10) <= 500;
(Demo)
但是,我仍建议不要挂钩并阻止keypress
个事件的默认情况 - 转到keyup
和change
个事件,如果输入的值无效,则会显示错误消息。或者使用带有最小和最大属性的HTML5 <input type="number" />
。