我有一个表单,其中基于某种条件,我需要从表单控件中禁用所需的验证器。我当前的代码如下所示。
address: new FormControl('', Validators.required)
this.dealForm.get('address').clearValidators();
this.dealForm.get('address').setValidators();
this.dealForm.get('address').updateValueAndValidity();
从这段代码中,该窗体控件仍然具有所需的验证器。有人对我的问题有任何建议吗?遵循了另一个主题的建议,所需的验证器仍然存在,并且表格无效
感谢您的帮助,您的回答正在奏效。我访问表单数据的方式有问题。
答案 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时考虑验证。