AngularJS验证问题

时间:2015-10-18 07:54:40

标签: javascript angularjs

我在AngularJS中有一些关于验证的问题

问题1:

如何在控制器视图中的AngularJS中实现以下功能

vanilla js code

document.getElementById('InputId).value.length

我在AngularJS中尝试了以下内容

$scope.myForm.InputngModelName.length

第2期

我有directive验证电子邮件

如何从我的控制器中调用它?

以下是指令

angular.module('myValidator',[])
    .directive('myValidator',function(){
            return{
                restrict: 'A',
                require: "ngModel",
                link: function(scope, elm, attrs, ctrl){
                    switch (attrs.myValidator){
                        case 'email':
                            var regex=/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
                            break;
                    }
                    ctrl.$parsers.unshift(function(viewValue){
                        if(regex.test(viewValue)){
                            ctrl.$setValidity('myValidator',true);
                        }
                        else{
                            ctrl.$setValidity('myValidator',false);
                        }
                        return viewValue;
                    });
                }
            };
        });    

1 个答案:

答案 0 :(得分:0)

我会研究使用angular-validator,它非常精简,您可以轻松添加自定义验证方法。它还包括一个电子邮件验证器。

Angular-Validator是一个易于使用,功能强大且轻量级的AngularJS验证指令。

<input  type = "email"
                            name = "emailAddress"
                            class = "form-control"
                            ng-model = "form.emailAddress"
                            invalid-message="'Thats not a real email address'"
                            required-message="'Yo this is required'"
                            validate-on="dirty"
                            required>

https://github.com/turinggroup/angular-validator http://plnkr.co/edit/XbDYKrM2QUf8g1ubTHma?p=preview