表单重置vee验证后出现错误3

时间:2019-12-03 16:47:03

标签: vue.js vee-validate

我正在使用vee-validate 3.1.1和vue 2.5.17。

成功提交表单后,我将重置输入

this.name = ''

但是重置输入后会显示验证错误消息,如下图所示

enter image description here

vee-validate 2中存在相同的问题。* 我已经用这段代码解决了

this.$nextTick(() => {
    this.errors.clear();
})  

3 个答案:

答案 0 :(得分:2)

//first reset your form values
this.name = '';
//then do this to reset your ValidationObserver
this.$nextTick(() => this.$refs.observer.reset());

这要求您将表单输入包装在带有属性ref="observer"的ValidationObserver中。否则,您需要在同一回调中调用您使用的每个ValidationProvider的reset方法。

请参见here,了解他们为vee-validate提供的示例。 “重置表单”涵盖了您的工作,下一个示例显示了我在说什么(“使用$ refs进行程序化访问”)。

答案 1 :(得分:2)

在Vee-validate 3 documentations之后,建议在请求动画帧后重置表格。

您可以执行以下操作:

methods: {
    async reset() {
       this.name = '';
       requestAnimationFrame(() => {
          this.$refs.observer.reset();
       );
    }
}

答案 2 :(得分:0)

已知这是VeeValidate的一个错误,由于某种原因尚未得到解决,但是使async方法首先重置变量,然后使观察者工作,似乎可以使它工作

因此,您可以坚持这一变通方法,直到有一天VeeValidate对其进行修复。

methods: {
  async resetForm() {
    this.name = '';
    this.$refs.observer.reset();
  }
}