角反应形式,移除的元素仍然有效

时间:2019-05-03 20:22:44

标签: angular angular-forms

我有一组显示给用户的输入,取决于选择的选项。如果用户选择显示输入的选项,则更改其选项以将其删除,然后提交删除的输入,将导致验证失败。但是,如果他们从不选择显示上述输入内容的选项,那么验证就可以了。

例如:

如果他们选择“当前受雇”,则填写表格,要求输入雇主姓名。如果他们取消选择该选项,则名称字段将消失,但会使表单无效。如果他们根本不选择它,那么验证就可以了。

1 个答案:

答案 0 :(得分:0)

如果没有更多信息,这真的很难解决。

但是我认为您的问题是FormGroup状态仍然将Validators附加到FormControl

删除FormControl时,还需要清除附加到FormGroup的验证程序。

this.formGroup.get('formControl').clearValidators();
this.formGroup.get('formControl').updateValueAndValidity();

您还可以从FormGroup删除或添加整个formControl。

addControl(name: string, control: AbstractControl): void
removeControl(name: string): void

更多信息about Reactive Forms可以在angular.io网站上阅读。