从反应式表单Angular 5

时间:2018-09-03 09:34:53

标签: angular angular-reactive-forms

我有一个表单,其中基于某种条件,我需要从表单控件中禁用所需的验证器。我当前的代码如下所示。

address: new FormControl('', Validators.required)

this.dealForm.get('address').clearValidators();
this.dealForm.get('address').setValidators();
this.dealForm.get('address').updateValueAndValidity();

从这段代码中,该窗体控件仍然具有所需的验证器。有人对我的问题有任何建议吗?遵循了另一个主题的建议,所需的验证器仍然存在,并且表格无效

感谢您的帮助,您的回答正在奏效。我访问表单数据的方式有问题。

2 个答案:

答案 0 :(得分:1)

清除后,请勿再次调用setValidators

像这样使用

address: new FormControl('', Validators.required)

this.dealForm.get('address').clearValidators();
this.dealForm.get('address').updateValueAndValidity();

答案 1 :(得分:0)

尝试这样的事情:

address: new FormControl('', [Validators.required])

this.dealForm.get('address').clearValidators();

this.dealForm.get('address').updateValueAndValidity();

我还建议您仅在模板中使用所需的验证,

<input type="text" required>

在这种情况下,将在加载html时考虑验证。