我想在我的表单上添加自定义验证,但仅限于必填字段(我使用ng-required中的条件)。
所以例如:如果需要一个字段,我需要检查它的值是否与“ - ”不同。如果是,则此字段有效并可以继续。否则,该字段无效,焦点将在此字段上设置,并且表单未经过验证。
我创建了一个指令:
app.directive('validation', function () {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
ctrl.$validators.validation = function (modelValue, viewValue) {
if (ctrl.$isEmpty(modelValue)) {
return false;
}
if (viewValue == null || viewValue == '' || viewValue == '--') {
return false;
}
return true;
};
}
};
});
但是这个是在所有字段上调用(必需或不需要。我只需要在非必填字段上调用它):
<input validation ng-required="evaluateCondition(field.MandatoryCondition, 'mandatory')" /> <!-- evaluateCondition returns false, so don't call the special validation -->
<input validation ng-required="evaluateCondition(field.MandatoryCondition, 'mandatory')" /> <!-- evaluateCondition returns true, so call the special validation -->
并且,如果该字段是必需的,则自定义验证返回false,我需要关注此字段。
有什么想法吗?
非常感谢!