我有一个表单,根据一个条件,我需要从表单控件中禁用所需的验证器。我当前的代码如下所示。
address: new FormControl('', Validators.required)
this.dealForm.get('address').clearValidators();
this.dealForm.get('address').setValidators();
this.dealForm.get('address').updateValueAndValidity();在这段代码中,该表单控件仍然具有所需的验证器。有人对我的问题有什么建议吗?根据另一个主题的建议,所需的验证器仍然存在,并且表单无效
感谢你们的帮助,你们的答案起作用了。我在访问表单数据时遇到了一个问题。
发布于 2018-09-03 17:39:01
清除后,不要再调用setValidators
像这样使用,
address: new FormControl('', Validators.required)
this.dealForm.get('address').clearValidators();
this.dealForm.get('address').updateValueAndValidity();发布于 2018-09-03 17:39:05
尝试如下所示:
address: new FormControl('', [Validators.required])
this.dealForm.get('address').clearValidators();
this.dealForm.get('address').updateValueAndValidity();我还建议您仅在模板中使用必需的验证,如下所示:
<input type="text" required>在这种情况下,当html将被加载时,将考虑验证。
https://stackoverflow.com/questions/52146985
复制相似问题