首页 > 解决方案 > 为什么在使用 vee 验证表单关闭模式时出现 attach() 错误

问题描述

当我使用 vue.js 关闭包含 vee 验证的“更新”表单的引导模式 (bootstrap-vue) 时出现此错误。

main.js:477686 Uncaught (in promise) Error: [vee-validate] Validating a non-existent field: "#35". Use "attach()" first.  

它发生在所有带有表单的模态上,因此导致它的任何一种形式都没有什么独特之处。我只是好奇在哪里查看为什么我会在更新表单时遇到同样的错误,因为引导模式正在关闭。如果这很重要,我正在使用 vee-validate v2。

标签: javascriptvue.jsbootstrap-modalbootstrap-vuevee-validate

解决方案


这是因为vee-validate v2当它们被卸载时取消注册字段中的指令是当你的模态消失时发生的情况。

由于 vee-validate 异步执行验证,您的表单很可能在关闭之前触发验证尝试。如果您使用谴责验证,这一点尤其明显。

有多种方法可以解决它,如果您使用谴责验证,那么您可以将模式的关闭延迟谴责数量。否则,您可以使用nextTickPromise.resolve关闭您的模式,这将允许它们在验证完成后关闭。


推荐阅读