2016-11-11 126 views
0

這裏是我的代碼:驗證密碼和確認密碼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> 

和表單的init部分:

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

現在我想驗證密碼和passwordConfirm場,但我不知道如何,我試圖創建一個指令,但我不能直接將formcontrol傳遞給它。謝謝。

編輯:

<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> 

它只是簡單的不工作,沒有錯誤。

+0

[密碼匹配(密碼和密碼一致)驗證使用ionic2和angular2](的可能的複製http://stackoverflow.com/questions/39718191/password -matchingpassword-and-conform-password-validation-using-ionic2-and-ang) – ranakrunal9

+0

這是不行的想法 –

+0

你得到的任何錯誤? – ranakrunal9

回答

1

對於使用以下HTML validateEqual指令使用:

<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

現在我得到了 '無法刪除屬性'validateEqual'未定義或空引用' –

+0

這很奇怪,我將它添加到模塊文件中,仍然無法工作,我試過3次... –

+1

@LeDinhNhatKhanh只是一個fyi,當使用registerForm.controls.password.invalid時,使用registerForm.get('password).invalid會更安全,因爲前者會導致錯誤。[https://github.com/qdouble/angular-webpack2-starter#aot--donts](https://github.com/qdouble/angular-webpack2-starter#aot--donts) –