gpt4 book ai didi

vue.js - Vee Validate 仅验证最后一项

转载 作者:行者123 更新时间:2023-12-04 01:34:05 26 4
gpt4 key购买 nike

我继承了一个 Vue 站点,该站点的表单使用 Vee Validate 2.x 遇到严重的输入延迟。

我迁移到 3.2.4 (vue 2.6.10) 并遵循迁移指南,但我只看到验证检查我的最终输入。

这是代码的修改版本:

<ValidationObserver ref="form">
<form @submit.prevent="submit">
<div v-for="formField in form.fields">
<ValidationProvider name="formField.label" rules="required" v-if="formField.type != 'select'" v-slot="v">
<input
:type="formField.type"
:placeholder="formField.placeholder"
v-model="formField.value"
>
<span class="text _warning" >{{ v.errors[0] }}</span>
</ValidationProvider>

<ValidationProvider name="formField.label" rules="required" v-if="formField.type == 'select'" v-slot="v">
<select v-model="formField.value" class="content_input input -select -arrow">
<option :value="null" disabled="disabled" selected="selected">Select {{formField.label}}</option>
<option v-bind:value="option.value" v-for="option in formField.options" :value="option.value" >{{option.label}}</option>
</select>
<span class="text _warning" >{{ v.errors[0] }}</span>
</ValidationProvider>
</div>
<button class="button input" type="submit">
{{form.data.submitText}}
</button>
</div>
</form>
</ValidationObserver>

import { extend } from 'vee-validate';
import { required, email } from 'vee-validate/dist/rules';

extend('email', email);

extend('required', {
...required,
message: 'This field is required'
});

export default {
...
methods: {
submit() {
this.$refs.form.validate().then(success => {
if(!success) {
return;
}
...
});
}
}
}

最佳答案

一个非常小的错误 - ValidationProvider组件需要提供唯一的名称,并且您已设置属性 name="formField.label"它将它设置为字符串“formField.label”。您的意思是将其设置为 :name="formField.label" (注意额外的冒号)。一旦你这样做,它就会起作用。

关于vue.js - Vee Validate 仅验证最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60178731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com