#javascript #forms #angularjs
#javascript #формы #angularjs
Вопрос:
Есть ли способ сделать форму недействительной, если два ввода не совпадают (например, пароли) в Angular? Похоже на form.password.$error.required
?
Ответ №1:
pwd1:<input type="password" ng-model="pwd1" required /><br />
pwd2:<input type="password" ng-model="pwd" required /><br />
<div ng-show="pwd1 amp;amp; pwd">Invalid:
<span ng-show="pwd1!==pwd">Wrong</span>
<span ng-show="pwd1===pwd">Correct</span>
</div>
Это просто проверяет, совпадают ли оба пароля.
Проверка угловой формы
Также проверьте этот угловой пользовательский интерфейс, который имеет директиву сопоставления паролей
Комментарии:
1. Я видел много решений с помощью ng-директивы, но это проще. Интересно, есть ли в этом какой-либо недостаток, потому что пока у меня все работает нормально.
Ответ №2:
Вы можете использовать Angular UI, у него есть ui-validate
директива:
<input name="password" required ng-model="password">
<input name="confirm_password" ui-validate=" '$value==password' " ui-validate-watch=" 'password' ">
Или вы можете создать свою собственную директиву для этого
myApp.directive('matchPassword', function () {
return {
require: 'ngModel',
restrict: 'A',
scope: {
matchPassword: '='
},
link: function (scope, elem, attrs, ctrl) {
scope.$watch(function () {
return (ctrl.$pristine amp;amp; angular.isUndefined(ctrl.$modelValue)) || scope.matchSenha === ctrl.$modelValue;
}, function (currentValue) {
ctrl.$setValidity('matchPassword', currentValue);
});
}
};
});
и используйте это так:
<input required name="passwordConfirm" match-password="model.Password" />