当前位置: 首页 > 知识库问答 >
问题:

Vee仅验证最后一项

后学
2023-03-14

我继承了一个Vue站点,该站点的表单使用Vee验证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;
                }
                ...
            });
        }
    }
}

共有1个答案

林鸿彩
2023-03-14

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

 类似资料:
  • 我刚接触vee validate。我想知道您如何验证按钮是否已按下。我已经用ValidationObserver包装了我的表单,其中有一个v形槽无效。我希望用户被要求选择一个按钮,这将允许用户继续到下一页。 代码验证观察员,我包装我的表单: 下面的代码是我需要知道如何设置用户从列表中选择按钮所需的验证。 和结束我的形式我有按钮,允许用户继续。该按钮将被禁用,直到表单完成并且没有验证错误。但我也想确

  • 我已经使用extend from创建了自定义规则。所以我有这个 当为false且为true时,从上述代码中,它会被上一条规则覆盖,因此结果始终被视为true而不是false 那么我如何才能做到这一点呢? 规则:

  • 我想知道你是否可以使用vee validate插件编写自定义日期验证,其中结束日期不能小于开始日期?我到处寻找,我找不到确切的答案。 如果没有办法实现这一点,那么我可以凑合着没有它,但是,现在我已经在我的模板中实现了我的开始日期是: 我的脚本如下所示: 但是没有出现任何验证。我想我在我的脚本中丢失了一些东西,但我不确定如何将日期实现到那里。任何帮助将不胜感激。

  • 我如何验证一个列表的值跨字段,其中至少一个单一的值必须设置(不是零) 我需要验证至少有一个字段被输入(例如总数不是零) 我遇到的问题是,当任何一个字段发生更改时,validator::total_cost不会重新评估所有正在验证的字段。 在“任意”输入中键入正确的值需要告诉“所有”其他输入,以便根据新的计算字段重新估价! 任何帮助都将不胜感激。 (我的电视机大得多) 我正在使用的标记 AnyVal

  • Vee在常见错误框中使用自定义台面验证动态元素。 如果存在验证错误,我需要在页面顶部单独显示错误消息,并在输入文件中显示高亮显示。如何检查组件中是否发生任何验证错误。 我想将其创建为一个组件,保存按钮位于主页面上,并在保存之前验证每个组件。

  • 在@vue/cli 4.1中。1应用程序我使用v-money和vee validate,我发现所需规则不适用于v-money,因为它始终具有“0”值。因此,我在这里编写自定义验证http://vee-validate.logaretm.com/v2/guide/custom-rules.html#using-习惯规则 在测试页面中插入此测试[ple]控制台中出现警告: 在浏览器中,我看到错误: 我