2014-11-28 2 views
1

Я начал использовать некоторые варианты модели с угловым, такие как ng-minlength = "3" и ng-required. Они работают хорошо и устанавливают поле ошибки, когда ввод неправильный.Есть ли способ с Угловым, чтобы я мог проверить, совпадают ли пароли и подтверждающие пароль?

Есть ли способ, которым я могу использовать эти параметры, чтобы также помочь мне проверить, что пароль и подтвержденный пароль совпадают или мне нужно добавить javascript для этого? Я не уверен, что это имеет значение, но все это будет проверяться в современных браузерах IE10 и выше.

+0

Я использовал это пару раз, http://scotch.io/demos/angular-validation, дайте мне знать, если это поможет. –

ответ

1

или вы можете resuse this directive, чтобы соответствовать любые два поля

Password: <input ng-model="user.password" type="password" /> 
Confirm: <input ng-model="user.passwordConfirm" type="password" data-match="user.password" /> 
1

Вы можете создать пользовательскую директиву для подтверждения ввода:

var app = angular.module('sample', []) 
    .directive('equalsTo', [function() { 
    /* 
    * <input type="password" ng-model="Password" /> 
    * <input type="password" ng-model="ConfirmPassword" equals-to="Password" /> 
    */ 
    return { 
     restrict: 'A', // Use only as attribute 
     scope: true, 
     require: 'ngModel', 
     link: function (scope, elem, attrs, control) { 
      var check = function() { 
       var v1 = scope.$eval(attrs.ngModel); // attrs.ngModel = "ConfirmPassword"     
       var v2 = scope.$eval(attrs.equalsTo).$viewValue; // attrs.equalsTo = "Password" 
       return v1 == v2; 
      }; 
      scope.$watch(check, function (isValid) { 
       control.$setValidity("equalsTo", isValid); 
      }); 
     } 
    }; 
}]); 

Вот пример

<input name="Password" required ng-minlength="6" /> 
<input name="ConfirmPassword" required equals-to="registerForm.Password" /> 

Полный пример: http://jsfiddle.net/meziantou/bA6vm/light/

Смежные вопросы