【问题标题】:Disable Reactive Form Validation when modal is closed关闭模式时禁用响应式表单验证
【发布时间】:2019-12-25 09:05:14
【问题描述】:

我在引导模式中使用了反应形式。当触摸输入时,表单执行验证。但是,当我单击 x 关闭表单并触摸该字段时,它执行验证,我看到错误消息,然后关闭表单。我知道验证发生是因为该字段在无效时被触及并失去焦点,但是,我不希望它在我关闭表单时执行验证。我不想使用脏,因为我需要在表单打开时进行验证。我该如何克服这个问题? 这是我的领域:

<div *ngIf="(direction.dirty || direction.touched)">
   <!-validation error here->
</div>

【问题讨论】:

  • 覆盖在 ngModelController 上定义的 $setDirty 方法。
  • 您使用哪种引导模式? ngx-bootstrang-bootstrap?
  • ng-bootstrap...
  • 你能把你打开模态的代码贴出来吗?

标签: angular bootstrap-4 angular-reactive-forms


【解决方案1】:

我将为您的字段实现一个异步验证器,该验证器在延迟后使用setTimeout 或类似的东西进行验证。如果设置了它,它还取决于一些阻止验证的标志。

然后关闭按钮处理程序将为该字段启用该设置。

这样我们确保在验证逻辑之前执行关闭处理程序,并在执行验证时设置标志。

【讨论】:

  • 我不想用 setTimeout 延迟验证它会减慢速度..
  • @MD10 延迟不必很长,我认为50-100ms就足够了(100ms的延迟通常不会被用户注意到)。目标是在之前运行标志更新逻辑验证。
猜你喜欢
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 2014-05-01
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多