2017-07-18 52 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