2016-04-20 94 views
0

火表單驗證在角2我能表單驗證在角2不要模糊

整合我使用form = formBuilder.group({...})方法。

驗證工作正常。但是我想驗證只在我點擊提交時被解僱。目前默認情況下,當用戶從輸入模糊時,它會啓動。如何停止模糊發射驗證並手動點燃。

編輯:

問題用*ngIf[hidden]是,他們很好地工作變量來跟蹤的形式提交。 驗證只有當我從輸入模糊時纔會觸發。換句話說,當用戶沒有訪問輸入時,驗證不會觸發。

回答

1

您需要將自定義formSubmitted屬性整合到您的表達式中以顯示錯誤。例如:

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

默認情況下它的值是false和表單提交時將被設置爲true

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

    onFormSubmitted() { 
    this.formSubmitted = true; 
    } 
} 
+0

你可以充分利用'touched'屬性:'form.touched'。 –

+0

是的,這是另一個問題。我正在使用觸摸的財產。從某種意義上說,只有被觸摸纔會顯示。 – Akshay

1

顯示,只有當提交平設置錯誤:

<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

我不明白這個問題。也許你正面臨一個不同的問題。目前,當需要輸入數字時,空輸入不會使其無效,否則在未訪問時必填字段無效。 –

+0

是的,這是另一個問題。我正在使用觸摸的財產。 – Akshay

+0

從某種意義上說,只有觸摸纔會顯示。 – Akshay