zl程序教程

您现在的位置是:首页 >  其它

当前栏目

[Angular2 Form] Check password match

Form check password match Angular2
2023-09-14 09:00:52 时间

Learn how to create a custom validator to check whether passwords match.

 

<h1>password match</h1>
<form novalidate autocomplete="off" [formGroup]="signupForm">
  <div class="form-field">
    <label>Password:</label>
    <input type="text" formControlName="password" [(ngModel)]="signup.password" name="password">
  </div>
  <div class="form-field">
    <label>Confirm Password: </label>
    <input type="text" formControlName="confirm" [(ngModel)]="signup.confirm" name="confrim"></div>
</form>
    this.signupForm = fb.group({
      password: [
        '',
        Validators.required
      ],
      confirm: [
        '',
        [
          Validators.required,
          confirmPasswords.bind(undefined, this.signup)
        ]
      ]
    });

 

confirmPasword validator is just a function, also a curry function. So it means it will be invoked when we pass the value 'confirm' password field. 

So if we want to send extra params, we can use '.bind(undefined, extraParam)'.

bind to undefined context, will keep the context when it get invoked, then send a extraParam

 

The extraParam will be 'passwords' and the value later be passed in is 'confirm'.

confirmPassword.ts:

export function confirmPasswords(passwords, confirm) {
  const valid = passwords.password&& passwords.password === confirm.value;
  return valid ? null : {
    confirmPassword: {
      valid: false,
      message: "Two passwrods are not the same"
    }
  };
}