Vee Validate 3 在表单提交时捕获错误
Vee Validate 3 catch errors on form submit
如果表单提交在 vee-validate 中失败,我该如何捕捉?我有以下组件
<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>
作为方法我有以下功能
onSubmit () {
alert()
console.log(this.$refs.observer)
this.$emit('onSendRegistration', this.form)
}
如果表单有效则工作正常,但如果失败则永远不会执行。如果表单验证失败,我在哪里可以捕获?
根据文档:
[handleSubmit
] calls validation like validate and mutates provider's state, accepts a callback to be run only if the validation is successful.
因此,对于 运行 验证错误情况下的回调,您必须使用 ValidationObserver
.
中的 ref
以编程方式触发验证
您的起始 ValidationObserver
标签现在如下所示:
...
<ValidationObserver tag='div' class='bg-white pt-6 pb-6 mb-4' ref='form'>
...
您的开始 form
标签现在应该是这样的:
...
<form
@submit.prevent='onSubmit'
class='mx-auto rounded-lg overflow-hidden pt-6 pb-6 space-y-10'
:class="{'is-loading' : isLoading}"
>
...
你的 onSubmit
方法应该是这样的:
onSubmit () {
this.$refs.form.validate().then(success => {
if (!success) {
// run your error code here
}
alert('Form has been submitted!');
});
}
除了这种程序化方法之外,对于 运行 无效表单提交后的回调函数,没有等同于 handleSubmit
的方法。
查看文档以获取有关 programmatic access with $refs
的更多信息。
如果表单提交在 vee-validate 中失败,我该如何捕捉?我有以下组件
<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>
作为方法我有以下功能
onSubmit () {
alert()
console.log(this.$refs.observer)
this.$emit('onSendRegistration', this.form)
}
如果表单有效则工作正常,但如果失败则永远不会执行。如果表单验证失败,我在哪里可以捕获?
根据文档:
[
handleSubmit
] calls validation like validate and mutates provider's state, accepts a callback to be run only if the validation is successful.
因此,对于 运行 验证错误情况下的回调,您必须使用 ValidationObserver
.
ref
以编程方式触发验证
您的起始 ValidationObserver
标签现在如下所示:
...
<ValidationObserver tag='div' class='bg-white pt-6 pb-6 mb-4' ref='form'>
...
您的开始 form
标签现在应该是这样的:
...
<form
@submit.prevent='onSubmit'
class='mx-auto rounded-lg overflow-hidden pt-6 pb-6 space-y-10'
:class="{'is-loading' : isLoading}"
>
...
你的 onSubmit
方法应该是这样的:
onSubmit () {
this.$refs.form.validate().then(success => {
if (!success) {
// run your error code here
}
alert('Form has been submitted!');
});
}
除了这种程序化方法之外,对于 运行 无效表单提交后的回调函数,没有等同于 handleSubmit
的方法。
查看文档以获取有关 programmatic access with $refs
的更多信息。