【发布时间】:2015-06-16 23:36:44
【问题描述】:
我正在制作一个有角度的注册表单,并已指示检查有效的电子邮件。该指令使用Validator 的isEmail(str [, options]) 为我完成检查正则表达式的工作。
指令被称为validator:
<form name="signUpForm">
<div class="form-group" ng-class="{ 'has-error' : signUpForm.email.$invalid && !signUpForm.email.$pristine }">
<input type="email" name="email" validator="isEmail" placeholder="Email" class="form-control" ng-model="user.email" ng-minlength="3" ng-maxlength="8">
<p ng-show="signUpForm.email.$invalid && !signUpForm.email.$pristine" class="help-block">E-mail is required.</p>
<p ng-show="signUpForm.email.$invalid">E-mail is invalid.</p>
</div>
<button ng-click="signUp()" class="btn btn-primary" ng-disabled="signUpForm.$invalid">Sign Up</button>
</form>
Angular:我想以某种方式返回false,或者如果电子邮件无效,则将$invalid 设置为true,并显示“电子邮件无效”消息(<p ng-show="signUpForm.email.$invalid">E-mail is invalid.</p>)。我不确定如何从指令中设置 $invalid 属性:
angular
.module('v2v')
.directive('validator', ['$rootScope', function ($rootScope) {
return {
restrict: 'A',
link: function (scope, elem, attr) {
elem.bind("keydown keypress", function(event) {
elem.$invalid = validator.isEmail(this.value);
});
}
};
}]);
【问题讨论】:
-
我还没有使用包含 $validators 的 Angular 版本,但我使用 setValidity('isEmail', true);
标签: javascript regex angularjs forms email