Это должно помочь вам разобраться ...
По сути, поскольку вы не предоставили кнопку, я предполагаю, что вы хотите проверить, равны ли оба пароля при изменении ввода.
Итак, я вставил событие (change)
во входы HTML
(подробнее о событии (change)
: https://developer.mozilla.org/en-US/docs/Web/Events/change).
Имея это в виду, я создал сообщение об ошибкедля отображения, когда входные данные были одинаковыми.
Затем я создал несколько Javascript
функций для проверки обоих полей ввода и сообщения для возврата сообщений об ошибках.
Надеюсь, что помог!весело!
HTML
<div class="row">
<div class="col-12">
<input type="text" required [(ngModel)]="passwordModel.oldPassword"
name="oldPassword" #oldPassword class="form-control" id="inputPassword"
placeholder="Current Password" (change)="checkOldPassword(oldPassword.value)">
</div>
</div>
<div class="row">
<div class="col-12">
<input type="text" required class="form-control" id="newinputPassword"
[(ngModel)]="passwordModel.newPassword" name="newPassword" #newPassword
placeholder="New Password" (change)="checkNewPassword(newPassword.value)">
</div>
</div>
<div class="row">
<div class="col-12" *ngIf="isNewPasswordInvalid">
<small>{{getErrorMessage()}}</small>
</div>
</div>
Javascript
isNewPasswordInvalid: boolean = false;
message: string = "The new password can't be the same as the old password!";
function checkOldPassword(value){
if(value === this.passwordModel.newPassword){
this.inputInvalid();
} else {
this.inputValid();
}
}
function checkNewPassword(value){
if(value === this.passwordModel.oldPassword){
this.inputInvalid();
} else {
this.inputValid();
}
}
function inputInvalid(){
document.getElementById('newinputPassword').style['border-color'] = 'red';
this.isNewPasswordInvalid= true;
}
function inputValid(){
document.getElementById('newinputPassword').style['border-color'] = '';
this.isNewPasswordInvalid= false;
}
function getErrorMessage(){
return this.message;
}
РЕДАКТИРОВАТЬ: Если вам нужна кнопка, @Ответ Эндрю Радулеску сделает свое дело. Удачи!