【发布时间】:2015-04-21 18:26:27
【问题描述】:
我需要限制用户做以下事情:
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;
}
【问题讨论】:
-
不要处理事件,检查新值是否合适,如果不合适,将输入值设置为旧值。
-
你能分享任何例子吗。
标签: javascript jquery validation