使用 Vee-Validate 和 vue js 2 在提交时验证子输入组件

2024-04-04

我目前正在尝试创建一个包含多个“输入字段”组件的注册表单,这些组件都需要在按下“提交”后进行验证。目前,当其中的文本发生更改时,它们都会自行验证,但我发现很难对所有输入字段进行全局调用以验证所有输入字段。我想要实现的目标如下:http://vee-validate.logaretm.com/examples#validate-form http://vee-validate.logaretm.com/examples#validate-form

是的,这与这个问题类似使用 Vee-Validate 验证提交时的子输入组件 https://stackoverflow.com/questions/41022935/validate-child-input-components-on-submit-with-vee-validate但我不明白

我有一个Input.vue

<template lang="html">
  <div :class="'col m'+col">
    <div class="input-field">
      <i v-if="icon" class="material-icons prefix">{{icon}}</i>
      <input
      v-if="area"
      :type="type"
      @input="onChange"
      :id="id"
      :required="required"
      :name="id"
      v-validate="'required'"
      />
      <textarea
      v-if="!area"
      @input="onChange"
      :id="id"
      :required="required"
      :name="id"
      class="materialize-textarea"></textarea>
      <label :for="id">
        {{label}}
        <span v-if="required" class="red-text">*</span>

      </label>
      <span class="red-text error">{{$store.state.errors[id]}}</span>
    </div>
  </div>
</template>

<script>

export default {
  name:'single-input',
  props: {
    col:{
      type: Number,
      default:6
    },
    id:{
      type: String,
      required:true
    },
    required:{
      type:Boolean,
      default: true
    },
    label:{
      type:String,
      required:true
    },
    onChange:{
      type:Function,
      required:true
    },
    area:{
      type: Boolean,
      default: true
    },
    type:{
      type: String,
      default: "text"
    },
    icon:{
      type:String
    },
    validation:{

      type:String
    }
  }
}
</script>

<style lang="css">

</style>

和 Info.vue

<template lang="html">
  <div class="row">
    <single-input v-for="(info,i) in informations" :id="info.id" :label="info.label" :onChange="onChange" :area="info.area" :key="i" :required="info.required" :col="info.col" :type="info.type" :icon="info.icon"></single-input>

  </div>
</template>

<script>
import SingleInput from "./SingleInput";
export default {
  name: 'info',
  methods:{

  onChange(e){

  }
},
  data(){
    return{
      informations:[
        {
          label: "First Name",
          id: "fname",
          icon: "person"
        },
        {
          label: "Last Name",
          id: "lname",
          required:false,
          icon: "person"
        },
        {
          label: "Email",
          id: "email",
          type:"email",
          icon:'email'
        },
        {
          label: "Telephone",
          id: "phone",
          type:"text",
          icon:'phone'
        },
        {
          label: "Department",
          id: "depa",
          type:"text",
          icon:'domain'
        },
        {
          label: "Organization",
          id: "org",
          type:"text",
          icon:'account_balance'
        },
        {
          label: "Address",
          id: "address",
          icon:'directions',
          area: false,
          col:12
        },
        {
          label: "City",
          id: "city",
          type:"text",
          icon:'place'
        },
        {
          label: "Post code",
          id: "post",
          type:"text",
          icon:'pin_drop'
        }

      ]
    }
  },
  components:{
    SingleInput
  }
}
</script>

<style lang="css">
</style>

我已尽力但无法访问 info.vue 中的错误

任何帮助将非常感激!


在您的示例中,我看不到任何验证尝试,但这是我在 jsfiddle 中的工作示例:link https://jsfiddle.net/0gpdpy03/

我做了什么: - 为信息组件添加提交方法

submit: function(){
        var validationArray = this.$children.map(function(child){
        return child.$validator.validateAll();
      });

    window.Promise.all(validationArray).then((v) => {
            alert('From Submitted!');
        }).catch(() => {
            alert('Correct them errors!');
        });
    }

此方法基本上验证您的信息的所有子项(在本例中为单输入)。

-更改了一些带有错误消息的跨度模板:

{{ ($validator.getErrors().errors.length > 0) ? $validator.getErrors().errors[0].msg : '' }}

编辑: 我只能猜测你的代码出了什么问题,但我相信你的情况的问题是你必须访问带有输入的组件下的“直接”验证器 - 单输入,而不是信息组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Vee-Validate 和 vue js 2 在提交时验证子输入组件 的相关文章

随机推荐

  • 如何使用 Exchange Web 服务 (EWS) API 通过共享邮箱发送电子邮件

    我正在使用 MS Exchange Web 服务 API 通过共享邮箱发送电子邮件 发送电子邮件可以工作 但它们不会保存在已发送的项目中 如下所示 手动执行此操作 项目保存在已发送项目中 但通过我的代码不会保存它们 using Micros
  • 循环变量文件名[重复]

    这个问题在这里已经有答案了 我正在使用 Fortran 对分成许多文件的庞大数据集进行计算 文件的名称是 maltoLyo12per reimage set1 traj maltoLyo12per reimage set2 traj mal
  • 使用 angularjs 将多个对象发送到 webapi

    我的 ASP NET WebApi 应用程序中有以下控制器 Route api PutItem HttpPut public IHttpActionResult PutItem Guid id Item item if ModelState
  • 如何在TabControl.ContentTemplate中添加新的用户控件?

    我不太愿意在中添加用户控件的新实例TabControl ContentTemplate 我的 Xaml 在这里
  • 软件版本编号遵循什么规则? [复制]

    这个问题在这里已经有答案了 我一直在开发一些软件并想给它版本号 我该怎么做呢 为什么有些软件有两个版本 比如1 3v1 1 或者有些有 3 个数字 4 0 1 这一切背后的方法是什么 Thanks 我见过的常用方法是X Y Z 一般对应ma
  • 单元测试作为构建的一部分

    我有一个 CMake 项目 分为三个部分 我的库的编译 编译许多单元测试程序来测试这些库的每个精确子部分 使用这些库编译程序示例 My question is about the 2nd part My unit tests executa
  • 如何使用 django-filters 重命名(在 API 中公开)过滤器字段名称?

    正如问题所述 我正在尝试重命名 API 中公开的过滤器字段名称 我有以下型号 class Championship Model class Group Model championship ForeignKey Championship c
  • qwt 图表示例 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大家好 我正在使用 qwt 我是新手 我想使用 qwt 和 qt 创建者绘制图表 我不知道要在我的 qt 项目中包含哪些库来绘制图表 我已
  • 在 Python 中下载、解压并读取 gzip 文件

    我想在 Python 中下载 提取和迭代文本文件 而无需创建临时文件 基本上 这个管道 但是在 python 中 curl ftp ftp theseed org genomes SEED SEED fasta gz gunzip proc
  • Array.prototype.filter.call(forms, function(form) 这是做什么的?

    我很难完全理解这段代码是如何工作的 这只是表单验证代码复制并从引导程序粘贴 我的问题从这一行开始 var 验证 Array prototype filter call forms function form 在我看来 它正在创建一个名为va
  • 如果启用身份验证,Azure 上的查询/标头太大

    我有一个在本地运行良好的节点 快速应用程序 我已将其上传到 Azure Web App 只要我不启用身份验证 它就可以正常工作 当我启用 AAD 身份验证时 应用程序失败并显示状态 500 1011 错误请求 我的网址中有很多查询参数 如果
  • 在 Git 中:为什么经常提交是件好事? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 所以我对 Git 和 DVCS 总体来说还很陌生 而且我一直在到处读到 至少在私有分支上 一直提交总是好的 问题是 为什么 我正在使用 Sour
  • 纯Python四叉树实现

    All 有一些使用 Python 实现四叉树的示例 但我的问题是 有谁知道用纯 python 编写的类 在单个 py 文件中 我可以轻松地将其包含在我的项目中 这里列出了三个最受欢迎的软件包这些四叉树库中的任何一个都好吗 https sta
  • Silverlight:如何处理标准程序集

    一个常见的 Silverlight 任务 减小 xap 文件的大小 有很多热门手册解释了如何使应用程序模块化 但我没有找到任何人解释如何制作 模块化 标准库 我的 xap 文件的最大部分 1 7Mb 当整体大小为 1 8Mb 时 被标准程序
  • 访问 Scala 中可用但 PySpark 中不可用的依赖项

    我正在尝试访问 RDD 的依赖项 在 Scala 中 这是一个非常简单的代码 scala gt val myRdd sc parallelize 0 to 9 groupBy 2 myRdd org apache spark rdd RDD
  • Java 执行器无法对任务进行排队

    我需要一个 Java 执行器 如果正在处理其他任务 它会拒绝任务 我想不可能操纵工作队列大小 有人可能会奇怪 为什么我首先需要一个具有这种特征的执行者 我需要能够轻松更改策略并允许非零队列大小 有任何想法吗 Use a 线程池执行器 htt
  • 对 href 使用 JavaScript 单引号和双引号

    我在转义单引号和双引号时遇到问题hrefJavaScript 函数 我里面有这段 JavaScript 代码href 就像是 a href a fileName doc true gt click this 现在 由于双引号内的双引号无效
  • 如何在 Sails.js 策略中使用错误处理程序回调?

    问完后这个问题 https stackoverflow com questions 22160043 how to use a callback array as the handler for a sails js route 我发现我可
  • lubuntu 的洞察调试器有其他选择吗?

    你能告诉我是否有其他选择洞察力 调试器或者如何使用调试器运行和调试 Jeff Duntemann 的 汇编语言分步第三版 中的汇编代码 其中输出 与书中示例中描述的输出相同吗 我在汇编计划学习方面完全是菜鸟 所以有人向我推荐了这本书 但是我
  • 使用 Vee-Validate 和 vue js 2 在提交时验证子输入组件

    我目前正在尝试创建一个包含多个 输入字段 组件的注册表单 这些组件都需要在按下 提交 后进行验证 目前 当其中的文本发生更改时 它们都会自行验证 但我发现很难对所有输入字段进行全局调用以验证所有输入字段 我想要实现的目标如下 http ve