一旦达到两位小数,就不允许添加或更新任何数字或小数值

时间:2015-04-21 18:26:28

标签: javascript jquery validation

我需要限制用户使用以下内容:

1)只允许数字 2)十进制最多2位数 3)允许 - 退格,制表,删除按钮

下面的代码工作正常,除了一个场景, 问题是,(示例)当文本框输入达到6545.12时,然后尝试将值更改为65457.127545.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;
    }

1 个答案:

答案 0 :(得分:0)

您可以考虑包含一个实现输入屏蔽的库(即,只允许将某些类型的值输入到输入字段中)。使用像https://github.com/RobinHerbots/jquery.inputmask这样的库,您可以将正则表达式指定为掩码。仅允许最多两位小数的数字的示例正则表达式为[0-9]+(\.[0-9][0-9]?)?。包含掩蔽库后,您可以直接在元素上调用掩码,也可以在输入中添加data-inputmask-regex属性。有关详情,请参阅https://github.com/RobinHerbots/jquery.inputmask#usage

简短版:这是一个难题,其他人已经完成了这项工作。