首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vee验证表单提交中的3个捕获错误

Vee验证表单提交中的3个捕获错误
EN

Stack Overflow用户
提问于 2020-09-17 09:27:44
回答 1查看 1.4K关注 0票数 0

如果表单提交在vee-验证中失败,如何捕获?我有以下组件

代码语言:javascript
复制
<template>
  <ValidationObserver tag='div' class='bg-white pt-6 pb-6 mb-4' v-slot='{ handleSubmit }'>

   <form
      @submit.prevent='handleSubmit(onSubmit)'
      class='mx-auto rounded-lg overflow-hidden pt-6 pb-6 space-y-10'
      :class="{'is-loading' : isLoading}"
    >
      <div class='flex flex-wrap -mx-3 mb-6'>
        <div class='w-full md:w-3/12 px-3 mb-6 md:mb-5'>
          <ValidationProvider v-slot='{ classes, errors }' rules='required' name='Anrede'>
          <CustomSelect :options='gender'
                        placeholder='Anrede *'
                        v-model='form.gender'
                        :class="classes"
          />
            <span class='text-mb-error font-medium text-sm italic'>{{ errors[0] }}</span>
          </ValidationProvider>
        </div>
</div>
   <div class='block'>
        <button
          class='bg-secondary hover:bg-secondary-200 text-white py-3 px-4 w-full mt-5 focus:outline-none'
          type='submit'
        >
          Registrieren
        </button>
      </div>
    </form>
  </ValidationObserver>
</template>

作为方法,我具有以下功能

代码语言:javascript
复制
 onSubmit () {
      alert()
      console.log(this.$refs.observer)

      this.$emit('onSendRegistration', this.form)
    }

如果表单是有效的,但是如果它失败了,它就不会被执行。如果表单验证失败,我可以在哪里捕获?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 13:03:58

根据文件:

handleSubmit调用验证,如验证和变异提供者的状态,只在验证成功时才接受要运行的回调。

因此,要在验证中出现错误的情况下运行回调,必须使用ref中的ValidationObserver以编程方式触发验证。

打开的ValidationObserver标记现在如下所示:

代码语言:javascript
复制
...
<ValidationObserver tag='div' class='bg-white pt-6 pb-6 mb-4' ref='form'>
...

打开的form标记现在应该如下所示:

代码语言:javascript
复制
...
<form
  @submit.prevent='onSubmit'
  class='mx-auto rounded-lg overflow-hidden pt-6 pb-6 space-y-10'
  :class="{'is-loading' : isLoading}"
>
...

您的onSubmit方法应该如下所示:

代码语言:javascript
复制
onSubmit () {
  this.$refs.form.validate().then(success => {
    if (!success) {
      // run your error code here
    }

    alert('Form has been submitted!');

  });
}

除了这种编程方法之外,在无效的表单提交之后运行回调函数也不等同于handleSubmit

有关programmatic access with $refs的更多信息,请查看文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63935108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档