2016-11-11 5 views
0

Hier sind meine Codes:Validate Passwort ein und bestätigen Passwort Ng2

<form [formGroup]="registerForm" novalidate (ngSubmit)="doRegister()"> 
      <div 
       class="form-group" 
       [ngClass]="{'has-danger': registerForm.controls.email.invalid 
        && !registerForm.controls.email.pristine}"> 
       <label>Email</label> 
       <input 
        formControlName="email" 
        name="email" 
        [ngClass]="{'form-control-danger': registerForm.controls.email.invalid 
        && !registerForm.controls.email.pristine}" 
        class="form-control" 
        type="email" /> 
      </div> 
      <div 
       class="form-group" 
       [ngClass]="{'has-danger': registerForm.controls.password.invalid 
        && !registerForm.controls.password.pristine}"> 
       <label>Password</label> 
       <input 
        class="form-control" 
        type="password" 
        formControlName="password" 
        name="password" 
        [ngClass]="{'form-control-danger': registerForm.controls.password.invalid 
        && !registerForm.controls.password.pristine}" > 
      </div> 
      <div 
       class="form-group" 
       [ngClass]="{'has-danger': registerForm.controls.passwordConfirm.invalid}" > 
       <label>Password Confirm</label> 
       <input 
        [ngClass]="{'form-control-danger': registerForm.controls.passwordConfirm.invalid}" 
        class="form-control" 
        type="password" 
        formControlName="passwordConfirm" 
        name="passwordConfirm" > 
      </div> 
      <button [disabled]="!registerForm.valid" class="btn btn-primary" type="submit">Register</button> 
     </form> 

Und die Form init Teil:

this.registerForm = this.formbuilder.group({ 
     email: ['', Validators.compose([Validators.required, validateEmail])], 
     password: ['', Validators.compose([Validators.required, Validators.minLength(5)])], 
     passwordConfirm: ['', ] 
    }) 

Jetzt möchte ich das Passwort und passwordConfirm Feld überprüfen, aber ich weiß nicht, Wie, ich habe versucht, eine Direktive zu erstellen, aber ich kann das Formcontrol nicht direkt in es übergeben. Vielen Dank.

Edit:

<div 
       class="form-group" 
       [ngClass]="{'has-danger': registerForm.controls.password.invalid 
        && !registerForm.controls.password.pristine}"> 
       <label>Password</label> 
       <input 
        formControlName="password" 
        name="password" 
        class="form-control" 
        [ngClass]="{'form-control-danger': registerForm.controls.password.invalid 
        && !registerForm.controls.password.pristine}" 
        type="password" 
        validateEqual="registerForm.controls.passwordConfirm" 
        reverse="true" > 
      </div> 
      <div 
       class="form-group" 
       [ngClass]="{'has-danger': registerForm.controls.passwordConfirm.invalid}" > 
       <label>Password Confirm</label> 
       <input 
        formControlName="passwordConfirm" 
        name="passwordConfirm" 
        [ngClass]="{'form-control-danger': registerForm.controls.passwordConfirm.invalid}" 
        class="form-control" 
        type="password" 
        validateEqual="registerForm.controls.password" > 
      </div> 

Es nur einfach nicht funktioniert, kein Fehler.

+0

Mögliche Duplikat [Passwort Anpassung (Passwort und anpassen Passwort) Validierung mit ionic2 und angular2] (http://stackoverflow.com/questions/39718191/password -matchingpassword-and-conform-password-validation-using-ionic2-and-ang) – ranakrunal9

+0

Es funktioniert nicht gedacht –

+0

irgendein Fehler, den Sie bekommen? – ranakrunal9

Antwort

1

Für validateEqual Richtlinie Anwendung unter Verwendung von HTML:

<div class="form-group" [ngClass]="{'has-danger': registerForm.controls.password.invalid && !registerForm.controls.password.pristine}"> 
    <label>Password</label> 
    <input formControlName="password" name="password" class="form-control" type="password" [ngClass]="{'form-control-danger': registerForm.controls.password.invalid && !registerForm.controls.password.pristine}" validateEqual="passwordConfirm" reverse="true" > 
</div> 
<div class="form-group" [ngClass]="{'has-danger': registerForm.controls.passwordConfirm.invalid}"> 
    <label>Password Confirm</label> 
    <input formControlName="passwordConfirm" name="passwordConfirm" [ngClass]="{'form-control-danger': registerForm.controls.passwordConfirm.invalid}" class="form-control" type="password" validateEqual="password" > 
</div> 
+0

Jetzt habe ich 'Kann nicht löschen Eigenschaft 'validateEqual' von undefined oder null Referenz ' –

+0

Es ist sehr seltsam, ich füge es in die Moduldatei und kann immer noch nicht funktionieren, ich habe 3 mal versucht ... –

+1

@LeDinhNhatKhanh nur ein fyi, wenn registerForm.controls.password.invalid verwendet wird, ist es sicherer, registerForm.get ('password) .invalid zu verwenden, da der ehemalige Fehler beim transpilieren verursachen kann [https://github.com/qdouble/angular-webpack2-starter#aot--donts](https://github.com/qdouble/angular-webpack2-starter#aot--donts) –

Verwandte Themen