Vue.js 表单重置vee validate 3后出错
我使用的是vee validate 3.1.1和vue 2.5.17 成功提交表单后,我将重置输入Vue.js 表单重置vee validate 3后出错,vue.js,vee-validate,Vue.js,Vee Validate,我使用的是vee validate 3.1.1和vue 2.5.17 成功提交表单后,我将重置输入 this.name = '' 但在重置输入后显示验证错误消息,如下图所示 vee validate 2中也存在同样的问题* 我用这个密码解决了这个问题 this.$nextTick(() => { this.errors.clear(); }) 这需要将表单输入包装在一个ValidationObserver中,属性为ref=“observer”。否则,您可能希望在同一回调中
this.name = ''
但在重置输入后显示验证错误消息,如下图所示
vee validate 2中也存在同样的问题*
我用这个密码解决了这个问题
this.$nextTick(() => {
this.errors.clear();
})
这需要将表单输入包装在一个ValidationObserver中,属性为ref=“observer”
。否则,您可能希望在同一回调中调用所使用的每个ValidationProvider的reset
方法
有关vee validate的示例,请参见。“重置表单”涵盖了您正在做的事情,下一个示例显示了我所说的(“使用$refs进行编程访问”)。这是VeeValidate的一个bug,由于某些原因,它没有得到处理,但使用
async
方法首先重置变量,然后重置观察者,似乎能让它起作用
所以你可以坚持做这件事,直到有一天你能把它修好
methods: {
async resetForm() {
this.name = '';
this.$refs.observer.reset();
}
}
在Vee validate 3之后,建议在请求动画帧后重置表单 你可以这样做:
methods: {
async reset() {
this.name = '';
requestAnimationFrame(() => {
this.$refs.observer.reset();
);
}
}
您好,谢谢您的回复。如果我先重置表单值,它对我不起作用。但是,在我重置validationObserver之后,表单值确实对meI起作用,但与您的问题非常类似,但此解决方案对我不起作用
methods: {
async reset() {
this.name = '';
requestAnimationFrame(() => {
this.$refs.observer.reset();
);
}
}