繁体   English   中英

如何在点击反应形式的提交按钮时重置所有验证

[英]how to reset all validations on click of submit button in reactive form

我已经在所有方面完成了我的项目,但奇怪的是在最后阶段我发现很难在单击“提交按钮”时删除可见的验证器,即使注册表中的输入字段在所有方面都已完成。

我还尝试通过“重置”形式删除验证器,但它再次不起作用。 我试过的代码是:

html

(click)="Rst()";

typescript

Rst(){
  this.formName.reset()
}

请指导一下我应该怎么go吧。

编辑:我尝试了这个[链接] https://medium.com/@kash6062/angular-reset-validation-on-form-reset-533f5d6d76a5中的代码

编辑 2:我也尝试过此 [链接] https://jasonwatmore.com/post/2019/06/25/angular-8-dynamic-reactive-forms-example中的代码

但代码不起作用

Reset后使用以下代码。

import { ChangeDetectorRef } from '@angular/core';

    constructor(private cd: ChangeDetectorRef) {
      }
         this.cd.detectChanges();

您可以尝试调用一个名为“updateValueAndValidity()”的方法

this.formName.updateValueAndValidity()

或者如果你想更新特定的 FormControl

this.formName.controls['your_form_control'].updateValueAndValidity()"

在上面的代码之后,您可以尝试使用@surendra kumar 的解决方案,它会明确尝试将状态反映或“刷新”到以后的状态。

constructor(private ref: ChangeDetectorRef) { .. }
....
Rst() {
    // After calling updateValueAndValidity
    this.ref.detectChanges();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM