想了老半天了,记录一下
app.directive("percentageCheck", function () { return { restrict: 'A', require: 'ngModel', link: function (scope, element, attr, ctrl) { if (ctrl) { var customValidator = function (value) { var temp = parseInt(value.split("%")[0]); var validity = ctrl.$isEmpty(value) || (temp > 0 && temp < 100); ctrl.$setValidity("percentageCheck", validity); return validity ? value : undefined; }; ctrl.$formatters.push(customValidator); ctrl.$parsers.push(customValidator); } } }; });
再加上正则表达式
<input maxlength="8" percentage-check ng-pattern="/^d+.?d{0,2}%$/">
完全限制住
搞定收工