ResetPasswordApp.directive('pwCheck', [function () {
return {
require: "ngModel",
link: function(scope, elem, attrs, ctrl) {
console.log(attrs);
var otherInput = elem.inheritedData("$formController")[attrs.pwCheck];
ctrl.$parsers.push(function(value) {
if(value === otherInput.$viewValue) {
ctrl.$setValidity("repeat", true);
return value;
}
ctrl.$setValidity("repeat", false);
});
otherInput.$parsers.push(function(value) {
ctrl.$setValidity("repeat", value === ctrl.$viewValue);
return value;
});
}
};
}]);
<form ng-controller="confimPwFormController" ng-submit="submit()" id="confirmPwForm" name="confirmPwForm" method="post">
<div class="form-group">
<input type="text" placeholder="请输入短信验证码" ng-model="confirm.captcha" ng-pattern="/^\d{6}$/" required=true id="smsCaptcha" name="smsCaptcha" class="required form-control" />
</div>
<div class="form-group">
<input type="password" placeholder="请输入新密码" id="password" ng-model="confirm.password" name="password" required=true class="required form-control" />
</div>
<div class="form-group">
<input type="password" placeholder="请再次输入新密码" id="plainPassword" ng-model="confirm.plainPassword" pw-check="password" name="plainPassword" required class="required form-control" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-info btn-block" value="完成" ng-disabled="confirmPwForm.$invalid"/>
</div>
</form>
http://piotrbuda.eu/2013/02/angularjs-directive-for-password-matching.html