【发布时间】:2015-07-29 12:48:16
【问题描述】:
我的 Angular js 表单上有一个文本字段,用于显示商品的销售价格。此字段不是必需的,但是如果用户在字段中输入值,我希望验证有效数字/十进制输入 > 0。任何无效输入都应强制该字段恢复为 0.00M 十进制。
我在基本的 validNumber 指令上尝试了几种不同的变体,但我无法让它发挥作用。如果我希望输入始终需要该值,我的指令可以正常工作。
这是我现在使用的必需的 RetailPrice 指令。我已经删除了我添加的代码,因为它无论如何都不起作用。
app.directive('validNumber', function () {
return {
require: "ngModel",
link: function (scope, elm, attrs, ctrl) {
var regex = /^\d{1,3}(,\d{3})*(\.\d+)?$/;
var validator = function (value) {
ctrl.$setValidity('validNumber', regex.test(value));
return value;
};
ctrl.$parsers.unshift(validator);
ctrl.$formatters.unshift(validator);
}
};
});
【问题讨论】:
标签: angularjs validation input decimal