【问题标题】:angular validate input type=“number” validation issue角度验证输入类型=“数字”验证问题
【发布时间】:2015-09-15 13:00:27
【问题描述】:

当用户输入字符时,input type number validation 出现问题。

当用户退出时它就消失了。

经过一番研究,我找到了几个解决方案,最好的一个是link

这里给出的解决方案是使用下面的指令

app.directive('toNumber', function () {
    return {
        require: 'ngModel',
        link: function (scope, elem, attrs, ctrl) {
            ctrl.$parsers.push(function (value) {
                return parseFloat(value || '');
            });
        }
    };
});

如果用户尝试输入数字以外的第一个字符,此解决方案可以正常工作。但是当用户输入lets say 1W 时它不起作用。它允许输入此模式。

可能,我需要修改此指令以阻止 1W, 1.W, 1WWW (any character after valid number) 模式进入。

有什么帮助吗?

还有,

如果我正在寻找任何更好的解决方案,请分享。 我的问题是:在 IE 上,当用户在输入类型数字中输入字符并跳出时,数字会消失,我无法使用 angular $error 显示错误。

【问题讨论】:

    标签: javascript jquery angularjs validation


    【解决方案1】:

    试试这个指令

    userapp.directive('priceValidator', [function() {
        return {
            require: 'ngModel',
            link: function(scope, element, attrs, modelCtrl) {
                modelCtrl.$parsers.push(function(inputValue) {
                    if (inputValue == undefined) return ''
                    var transformedInput = inputValue.replace(/[^0-9]/g, '');
                    if (transformedInput != inputValue) {
                        modelCtrl.$setViewValue(transformedInput);
                        modelCtrl.$render();
                    }
                    return transformedInput;
                });
            }
        };
    }])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      相关资源
      最近更新 更多