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

VueJS-Vee-验证:调用方法/函数来评估结果的自定义规则?

王曜文
2023-03-14

抱歉,我对VueJS及其框架还是很陌生。

我试图使用vee-valester和自定义规则来检查针对AxiosGET响应的API后端的输入字段的值。本质上,如果您输入一个无效的ID,它会抛出一个错误,直到您正确地获得它(即:将票证分配给一个有效的员工,您必须输入一个有效的员工ID)。

我的模板代码现在看起来像这样:

     <b-col cols="4">
        <b-input-group>
          <b-input-group-text style="width:150px;" slot="prepend">Key Owner</b-input-group-text>
          <input
            class="form-control"
            v-model="selected_owner_id"
            type="text"
            id="ownerId"
            name="ownerId"
            data-vv-delay="800"
            @change="validateCorpId"
            v-validate="'ownerId|required'"
            v-bind:class="{'form-control': true, 'error': errors.has('ownerId') }"
          >
        </b-input-group>
        <span v-show="errors.has('ownerId')" class="text-danger">{{ errors.first('ownerId') }}</span>
      </b-col>

(我正在处理如何做到这一点,因此对实际执行AxiosAPI调用的函数进行了@更改)

这是我在同一个*中制定的验证扩展规则。如上所述的vue文件

<script>
import { Validator } from "vee-validate";
import VeeValidate from 'vee-validate'

Validator.extend('ownerId', {
  // Custom validation message
  getMessage: (field) => `The ${field} is not a valid ID.`,
  // Custom validation rule
  validate: (value) => new Promise(resolve => {        
    resolve({
        valid: value && (this.validateCorpId(value))
      });
  })
});

...etc...

validateCorpId(value)函数稍后位于methods:{}块中

我一直在尝试浏览Vee Validate文档,了解如何正确创建自定义验证规则,但作为一名新手,仍然缺少很多东西,比如,应该在哪里进行验证。你真的坐吗?我把它放在“脚本”区域的顶部,还是放在“创建”或“装载”函数的内部?

我确实试过了,但它马上就被调用了,这不是我想要的——我只希望当用户在它调用函数的字段中输入或更改数据时,它会调用返回真|假值的函数。

我还将一个名为is_selected_owner_id_valid的字段添加到“data”返回块中,并根据结果将我的Axios调用设置为true | false,但由于它是一个布尔值,验证规则会立即读取它,并且计算结果不正确。

我很高兴继续为自己工作,但有没有人有一个完全可以工作的自定义规则,我可以看到和反向工程?真的很难找到一个例子来说明我正在尝试做什么,将API调用作为规则的一部分。

共有1个答案

鱼渝
2023-03-14

最初,我在这里复制了类似的帖子答案,从而解决了我的问题:

Vee validate(VueJS)-异步评估条件

虽然它可以工作,但我不相信在自定义规则中有实际的APi调用。但是,多亏了Walter Cejas的建议,我将把我的解决方案重新组合到该示例中,提供:https://baianat.github.io/vee-validate/examples/async-backend-validation.html

(我以为我已经看完了所有的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]控制台中出现警告: 在浏览器中,我看到错误: 我

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

  • 本文向大家介绍thinkphp5.0自定义验证规则使用方法,包括了thinkphp5.0自定义验证规则使用方法的使用技巧和注意事项,需要的朋友参考一下 我们在用thinkphp5.0时候,经常要自定义验证规则,这个写法与tp以前的版本有所区别,小编今天带来大家一起来学习一下5.0下验证规则的使用方法。 在thinkphp5中定义$rule(验证规则)有两种方式 方式一: 方式二: 如果方式一自定义

  • 我正在将Laravel-5.8与Vue一起使用。js。我的问题是如何在Vee Validate库中显示规则的自定义错误消息。“required”规则的自定义消息没有显示,而是显示为:“first_name字段是必需的。”预期的消息是“请输入名字。” 下面的代码在应用程序中。js 这是我的HTML组件代码。 下面是我的JS脚本代码 我遗漏了什么吗?

  • 本文向大家介绍vee-validate vue 2.0自定义表单验证的实例,包括了vee-validate vue 2.0自定义表单验证的实例的使用技巧和注意事项,需要的朋友参考一下 亲测可用 学习vee-validate,首先可以去阅读官方文档,更为详细可以阅读官网中的规则。 一、安装 您可以通过npm或通过CDN安装此插件。 1. NPM 2. CDN 或者你可以使用ES6导入它: 二、使用中

  • 我正在使用一个名为verify.js的新插件来验证表单字段,在我开始尝试创建自己的自定义验证规则之前,所有的工作都很顺利。 这里是他们文档的链接,其中解释了如何创建自定义验证:http://verifyjs.com/#custom-rules 更有帮助的是插件作者发布在JSfiddle上的这个示例:http://jsfidle.net/jpillora/r4t84/1/I几乎精确地复制了这里的代码