繁体   English   中英

角度验证输入类型=“数字”验证问题

[英]angular validate input type=“number” validation issue

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

当用户跳出时,它就消失了。

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

此处给出的解决方案是使用以下指令

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显示错误。

试试这个指令

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;
            });
        }
    };
}])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM