我需要限制用户使用以下内容:
1)只允许数字 2)十进制最多2位数 3)允许 - 退格,制表,删除按钮
下面的代码工作正常,除了一个场景,
问题是,(示例)当文本框输入达到6545.12
时,然后尝试将值更改为65457.12
或7545.13
之后,那么它不允许并限制我。 (所以,在这里,不允许在.
之前或.
之后添加新数字或更改现有数字
任何人都可以指导我如何解决这个问题。
在文本框的keypress
事件中调用以下函数。
function isNumber(evt, element) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (
&& // “-” CHECK MINUS, AND ONLY ONE.
(charCode != 8) && (charCode != 9) && (charCode != 37) && (charCode != 39) &&
(charCode != 46 || $(element).val().indexOf('.') != -1) && // “.” CHECK DOT, AND ONLY ONE.
(charCode < 48 || charCode > 57)) {
return false;
}
if ($(element).val().indexOf('.') != -1)
{
var index = $(element).val().indexOf('.');
var len = $(element).val().length;
var CharAfterdot = (len + 1) - index;
if (CharAfterdot <= 3) {
return true;
}
else {
return false;
}
}
return true;
}
答案 0 :(得分:0)
您可以考虑包含一个实现输入屏蔽的库(即,只允许将某些类型的值输入到输入字段中)。使用像https://github.com/RobinHerbots/jquery.inputmask这样的库,您可以将正则表达式指定为掩码。仅允许最多两位小数的数字的示例正则表达式为[0-9]+(\.[0-9][0-9]?)?
。包含掩蔽库后,您可以直接在元素上调用掩码,也可以在输入中添加data-inputmask-regex
属性。有关详情,请参阅https://github.com/RobinHerbots/jquery.inputmask#usage。
简短版:这是一个难题,其他人已经完成了这项工作。