VeeValidation returns 始终为真
VeeValidation returns always true
我刚开始在我的项目中使用 vee-validate。我的组件中有以下代码,其中是带有验证的简单表单组
<ValidationObserver ref="observer" v-slot="{ invalid }">
<b-form @submit.prevent="onSubmit" novalidate>
<b-form-group label="Amount">
<ValidationProvider name="amount" rules="required|min_value:0" v-slot="{ errors }">
<b-form-input
:state="errors.length == 0"
v-model="form.amount"
type="text"
placeholder="Amount"
></b-form-input>
<b-form-invalid-feedback :state="errors.length == 0">{{errors.join('. ')}}</b-form-invalid-feedback>
</ValidationProvider>
</b-form-group>
</b-form>
</ValidationObserver>
我在组件中导入了 ValidationObserver 和 ValidationProvider,但验证行为很奇怪。
在图片上您可以看到默认行为。它从一开始就是绿色的,无论我写什么或者我是否提交为空都没有关系。它总是绿色的。
提交方法如下所示:
async onSubmit() {
let validate = await this.$refs.observer.validate();
console.log('VALID: ', validate)
},
并给我永远正确的结果。
我正在使用 nuxt 2.9.x 和 vee-validate 3.1.x
使用 vee-validate,您必须明确 extend
使用您想要的任何规则进行 vee-validate。文档中有一个具体示例 here 介绍了如何执行此操作:
import { extend } from 'vee-validate';
import { required, min_value } from 'vee-validate/dist/rules';
extend('min_value', min_value);
extend('required', required);
如果您不这样做,您的规则将被忽略,表单始终被验证为有效。
此外,如果您使用的是 nuxt,请参阅注释 here
我刚开始在我的项目中使用 vee-validate。我的组件中有以下代码,其中是带有验证的简单表单组
<ValidationObserver ref="observer" v-slot="{ invalid }">
<b-form @submit.prevent="onSubmit" novalidate>
<b-form-group label="Amount">
<ValidationProvider name="amount" rules="required|min_value:0" v-slot="{ errors }">
<b-form-input
:state="errors.length == 0"
v-model="form.amount"
type="text"
placeholder="Amount"
></b-form-input>
<b-form-invalid-feedback :state="errors.length == 0">{{errors.join('. ')}}</b-form-invalid-feedback>
</ValidationProvider>
</b-form-group>
</b-form>
</ValidationObserver>
我在组件中导入了 ValidationObserver 和 ValidationProvider,但验证行为很奇怪。
在图片上您可以看到默认行为。它从一开始就是绿色的,无论我写什么或者我是否提交为空都没有关系。它总是绿色的。
提交方法如下所示:
async onSubmit() {
let validate = await this.$refs.observer.validate();
console.log('VALID: ', validate)
},
并给我永远正确的结果。
我正在使用 nuxt 2.9.x 和 vee-validate 3.1.x
使用 vee-validate,您必须明确 extend
使用您想要的任何规则进行 vee-validate。文档中有一个具体示例 here 介绍了如何执行此操作:
import { extend } from 'vee-validate';
import { required, min_value } from 'vee-validate/dist/rules';
extend('min_value', min_value);
extend('required', required);
如果您不这样做,您的规则将被忽略,表单始终被验证为有效。
此外,如果您使用的是 nuxt,请参阅注释 here