必填字段的自定义验证+设置焦点

时间:2015-06-10 10:38:06

标签: javascript angularjs forms validation

我想在我的表单上添加自定义验证,但仅限于必填字段(我使用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,我需要关注此字段。

有什么想法吗?

非常感谢!

0 个答案:

没有答案