【发布时间】:2020-08-05 04:30:29
【问题描述】:
考虑以下演示https://stackblitz.com/edit/angular-pur1dt
我有带有同步验证器的反应式表单控制,当它失效时,该字段下方会显示错误消息。
当控件失去焦点时触发验证。在控件下方有一个具有单击处理程序的按钮。问题是当我单击按钮时,控件失去焦点,发生验证,显示错误消息并将按钮向下移动。据说这会阻止点击处理程序执行。有什么建议为什么会发生这种情况以及如何解决这个问题?
我已经用 cmets 更新了演示。注意:只有输入下方的按钮会重现该问题。第一次点击标题不会更新。
【问题讨论】:
-
您提供的链接似乎按预期工作;两个按钮都按预期调用它们的点击事件。表单验证似乎也按预期工作。
-
另一种方法是将 [disable] 属性与这样的表单绑定
<button [disabled]="form.invalid" (click)="onClick($event)">click OK</button>如果表单无效,则按钮将被禁用 -
@joshvito,尝试重新加载每次点击。你会看到
-
@DanielC 这不是我的情况。该按钮与表单提交无关。它只是使控制失去焦点的其他一些组件。
-
重新加载只会将应用程序重建到其初始状态。我想我没有完全关注你的问题。对不起。我同意@Daniel C,如果您希望在表单无效绑定到按钮的 disabled 属性时禁用按钮
标签: angular angular-reactive-forms