我正在编写用于在输入文本框上实现验证的代码。哪个应该允许用户只输入数字。几乎成功实现了这一功能,但面临一个困难: 我无法删除输入的最后一个字符。
app.directive('num', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, el, attrs, ctrl) {
var lastValidValue;
var NUMBER_REGEXP = /^[0-9]+$/;
ctrl.$parsers.push(function (value) {
console.log('inside parsers')
console.log("Last " + lastValidValue + ", View " + ctrl.$viewValue + ", model " + ctrl.$viewValue);
if (NUMBER_REGEXP.test(value)) {
console.log('true')
lastValidValue = value;
}
else {
ctrl.$viewValue = lastValidValue;
ctrl.$render();
}
console.log("Last " + lastValidValue + ", View " + ctrl.$viewValue + ", model " + ctrl.$viewValue);
return lastValidValue;
});
}
}
})
请帮我解决这个问题。
答案 0 :(得分:1)
尝试将if (NUMBER_REGEXP.test(value))
更改为if (NUMBER_REGEXP.test(value) || value == '')