2017-04-18 14 views
0

フォーム2をフォーム検証に使用しています。電話番号の検証を行っています。ユーザーがフィールド/タブを離れるときにのみ検証メッセージを表示する現在、検証はうまくいきますが、フィールドに集中していても検証メッセージが表示されます。 例 - 電話番号を変更して数字を10にすると、エラーがスローされます(タブアウトしていませんが)。タブアウトしたときにのみエラーを表示します。私はここで何が不足しているか考えています。ANgular2-ユーザーがフィールドを除外したときの検証メッセージを表示する

<form [formGroup]="paymentDetailsForm"> 
    <md-input formControlName="officePhone" placeholder="Primary Contact Phone" name="officePhone" [(ngModel)]="paymentform.officePhone" (blur)="registerChaseUser()" (keyup)="numberKeyed($event.target.value)" [restrictKey]="'^[0-9]+$'" noSpace="true" maxlength="14" required></md-input> 
     <span *ngIf="!paymentDetailsForm.controls['officePhone'].valid && (!paymentDetailsForm.controls['officePhone'].pristine || paymentDetailsForm.controls['officePhone'].touched || showPaymentError) && paymentform.officePhone.length == 0" class="validation validation-fix">This field is required.</span> 
     <span *ngIf="(paymentform.officePhone.length < 14) && (paymentform.officePhone.length > 0) && (!paymentDetailsForm.controls['officePhone'].pristine || paymentDetailsForm.controls['officePhone'].touched)" class="validation validation-fix">Please enter a full 10-digit phone number.</span> 
    </form> 
+0

はそれが動作しないでしょうか? – LLL

+0

正常に動作していますが、番号を変更しようとしてもエラーになります。 –

答えて

1

ぼかし

<input (blur)="onBlur()" (focus)="onFocus()"> 

を使用してみてください、その後のonblurが呼び出された場合にのみ、メッセージを有効にします。

+0

こんにちは、あなたは 'ngTouch' – Houtan

0

あなたは試してみてください 'ngTouch' 例えば

instead of "|| paymentDetailsForm.controls['officePhone'].touched" 
should write "&& paymentDetailsForm.controls['officePhone'].touched" 

:あなたが触れたためにチェックすると

  <form *ngIf="active" id="contactForm" (ngSubmit)="onContactSubmit()" [formGroup]="contactForm"> 
       <div class="row"> 
        <div class="col-sm-6 form-group"> 
         <label for="first-name"> First Name</label> 
         <input class="form-control" type="text" formControlName="firstName"> 
         <p *ngIf="!contactForm.controls.firstName.valid&&contactForm.controls.firstName.touched" class="alert alert-danger"> 
          firstname is required 
         </p> 
        </div> 
        <div class="col-sm-6 form-group"> 
         <label for="last-name"> Last Name</label> 
         <input class="form-control" type="text" formControlName="lastName"> 
         <p *ngIf="!contactForm.controls.lastName.valid&&contactForm.controls.lastName.touched" class="alert alert-danger">lastname is required</p> 
        </div> 
       </div> 
      </form> 
関連する問題