当用户输入字符时,我遇到了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
时,它不起作用。它允许输入这种模式。
可能我需要修改此指令以阻止blovk 1W, 1.W, 1WWW (any character after valid number)
模式进入。
任何帮助?
此外,
请分享是否有更好的解决方案,我正在寻找。 我的问题是:在IE上,当用户在输入类型编号和标签输入字符时,数字就会消失,我无法使用angular $ error显示错误。
答案 0 :(得分: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;
});
}
};
}])