2016-04-20 6 views
0

に角度2でフォーム検証を発射しないでください私はform = formBuilder.group({...})メソッドを使用していた角度2.ぼかし

でフォームの検証を統合することができました。

検証がうまくいきます。しかし、私はsubmitをクリックしたときにだけ検証が鳴るようにしたい。現在、デフォルトでは、ユーザーが入力からぼかしたときに起動します。手ぶれの検証を中止し、手動で起動する方法。

EDIT:*ngIfまたは[hidden]を使用して

問題は、彼らがフォームの送信を追跡するための変数で正常に動作ということです。 しかし、検証は、入力からぼかしたときのみ起動します。他の方法では、ユーザーが入力を訪問していないときに検証は実行されません。

答えて

1

エラーを表示するために、カスタムのformSubmittedプロパティを式に統合する必要があります。たとえば:

<span *ngIf="formSubmitted && form.controls.someCtrl.errors?.someerror"> 
    Some message 
</span> 

デフォルトでその値はfalseで、フォームの送信時trueに設定されます。 `form.touched`:

<form (ngSubmit)="submit()" ...> 
<input ngControl="name" #name="ngForm" type="text"> 
<span [hidden]="name.valid && isSubmitted"><b>Required</b></span> 
</form> 
class MyComponent { 
    isSubmitted:boolean = false; 

    submit() { 
    this.isSubmitted = true; 
    } 
} 
+0

あなたは' touched'財産を活用できます。

@Component({ (...) template: ' <form (ngSubmit)="onFormSubmitted()"> </form> ' }) export class SomeComponent { formSubmitted: boolean = false; onFormSubmitted() { this.formSubmitted = true; } } 

+0

はい、それは別の問題でした。私は触れられた特性を使用していました。タッチされた場合にのみ表示されるという意味で。 – Akshay

1

が設定されているフラット提出エラーのみを表示します。
+0

私はこの問題を理解していません。多分あなたは別の問題に直面しているでしょう。現在、数値入力が必要な場合、空の入力は無効にしませんが、それ以外の場合は必須フィールドは無効です。 –

+0

はい、それは別の問題でした。私は触れられた特性を使用していました。 – Akshay

+0

タッチされた場合にのみ表示される意味で。 – Akshay