2017-07-18 50 views
1

我有一些組件有一些下拉。一旦選擇了下拉列表,就會加載一個自定義組件幷包含一個文本框。 例如,一個頁面上有3個控件,一旦用戶從下拉列表中選擇了特定的選項,第4個文本框就會從單獨的組件中加載。表單組驗證不適用於自定義創建的組件

如何禁用我的提交按鈕,如果第4個文本框爲空。

以下是自定義部件的HTML代碼

<input class="form-control" type="text" value="" 
    [(ngModel)]="configurationData.sno" name="sno" required> 
+1

有沒有這樣的事情作爲angularjs 4 ... –

回答

1

要禁用的按鈕可以使用角屬性結合,並通過保持該形式有效狀態的變量,因爲這樣的:

<button [disabled]="!ValidForm">Click</button> 

如果表單有效請勿禁用,如果表單無效,請將禁用屬性添加到按鈕

或使用輸入組件,我們可以通過ngModel該輸入,如果輸入是空的,它將返回其計算結果爲假空字符串,如果有一個值,那麼它會評估爲真:

<button [disabled]="!configurationData.sno">Click</button> 

我們使用'!'在你的ngModel變量之前,因爲我們想要變量來關閉'false'或空字符串的禁用屬性。

+0

在我的情況下所有3控件和按鈕在一個HTML和第四個文本框(自定義HTML)是在不同的HTML。 –

+0

你的意思是說,你有不同的HTML組件模板中的第四個文本框?如果是這種情況,那麼你可以使用事件emmiters來觸發表單有效事件,並將其傳遞給html模板(使用'@Input()')提交按鈕。看看:https://angular.io/api/core/EventEmitter – NickMcB