Element 多个Form表单 同时验证

news2024/11/26 23:36:44

一、背景

在一个页面中需要实现两个Form表单,并在页面提交时需要对两个Form表单进行校验,两个表单都校验成功时才能提交

所用技术栈:Vue2+Element UI

二、实现效果

三、多个表单验证

注意项:

两个form表单,每个表单上都设置单独的model和ref,不能同时使用,否则每个表单上的校验提示会失效

<template>
  <div>
    <!-- 表单一区域 -->
    <el-form :inline="true" :model="form1Mode" class="demo-form-inline" ref="form1Ref" :rules="form1Rules">
      <el-form-item label="表单一" prop="user">
        <el-input v-model="form1Mode.user" placeholder="form1"></el-input>
      </el-form-item>
    </el-form>
    <!-- 表单二区域 -->
    <el-form :inline="true" :model="form2Mode" class="demo-form-inline" ref="form2Ref" :rules="form2Rules">
      <el-form-item label="表单二" prop="user">
        <el-input v-model="form2Mode.user" placeholder="form2"></el-input>
      </el-form-item>
    </el-form>
    <!-- 按钮提交区域 -->
    <div>
      <el-button type="primary" @click="onSubmit">确定</el-button>
      <el-button>取消</el-button>
    </div>
  </div>
</template>

3.1、方式一:依次对两个表单进行校验

<script>
export default {
  data() {
    return {
      form1Mode: {
        user: ''
      },
      form2Mode: {
        user: ''
      },
      form1Rules: {
        user: [{ required: true, message: '请输入form1', trigger: 'blur' }]
      },
      form2Rules: {
        user: [{ required: true, message: '请输入form2', trigger: 'blur' }]
      }
    }
  },
  methods: {
    //确定按钮
    async onSubmit() {
      try {
        await this.$refs.form1Ref.validate()
        console.log('表单1校验通过')
        await this.$refs.form2Ref.validate()
        console.log('表单2校验通过')
        //都校验成功之后,这里可以发请求
        this.$message.success('表单校验成功')
      } catch (error) {
        console.error('表单校验失败', error)
      }
    }
  }
}
</script>

3.2、方式二:两个表单同时校验------使用Promise.all

<script>
export default {
  data() {
    return {
      form1Mode: {
        user: ''
      },
      form2Mode: {
        user: ''
      },
      form1Rules: {
        user: [{ required: true, message: '请输入form1', trigger: 'blur' }]
      },
      form2Rules: {
        user: [{ required: true, message: '请输入form2', trigger: 'blur' }]
      }
    }
  },
  methods: {
    //封装验证函数
    submitForm(formUser) {
      return new Promise((resolve, reject) => {
        this.$refs[formUser].validate((valid) => {
          if (valid) {
            resolve()
          } else {
            reject(new Error('错误'))
          }
        })
      })
    },
    //确定按钮
    onSubmit() {
      Promise.all([this.submitForm('form1Ref'), this.submitForm('form2Ref')])
        .then(() => {
          //验证成功后在此处发请求
          this.$message.success('验证通过')
        })
        .catch(() => {
          this.$message.error('验证失败')
        })
    }
  }
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1146698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tomcat9~10猫闪退个人经验

java版本17与8 8版本有jre&#xff0c;java17没有jre 所以在java8版本中将jre和jdk路径一同添加环境是不会出现闪退的&#xff0c;tomcat9没有闪退 但是在10就闪退了&#xff0c;因为java版本太低 java17没有jre&#xff0c;但是可以通过一种方法添加jre到java17的目录 完…

【技术综述】深度学习模型结构复杂、参数众多,如何更直观地深入理解你的模型?...

CNN、RNN等深度学习模型使用的门槛虽然低&#xff0c;但模型参数多&#xff0c;网络结构复杂。输出如何关联模型的参数&#xff0c;在数学上没有很直观的解释&#xff0c;导致模型网络结构的设计以及训练过程中超参数的调试&#xff0c;都非常依赖于经验。结果不好&#xff0c;…

【鸿蒙软件开发】Stage模型开发概述应用/组件级配置

文章目录 前言一、基本概念1.1 UIAbility 组件1.2 ExtensionAbility 组件1.3 Context1.4 AbilityStage1.5 Stage模型开发流程应用组件开发了解进程模型了解线程模型应用配置文件 二、Stage模型应用/组件级配置2.1 为什么需要这个操作2.2 应用包名配置2.3 应用图标和标签配置2.4…

linux-磁盘应用

目录 一、磁盘内容简述 1、一些基本概念 2、分区简述 3、常见文件系统 4、linux硬盘文件 二、对linux系统进行分区 1、用fdisk进行分区 2、用parted进行分区 一、磁盘内容简述 1、一些基本概念 - 扇区大小&#xff1a;512Btyes&#xff0c;0.5KB - 磁盘最小存储单位&…

黑猪肉经营配送商城小程序商城效果怎样

对产品商家来说&#xff0c;如今线下流量匮乏难以增长&#xff0c;线上已经成为商家们重要的经营渠道&#xff0c;但入驻第三方平台也存在诸多痛点&#xff0c;因此更多企业品牌商家选择自建私域卖货平台完善更多生意。 微信作为私域主阵地&#xff0c;自然是企业们不可错过的…

Java面向对象(进阶)-- 拼电商客户管理系统(康师傅)

文章目录 一、目标二、需求说明&#xff08;1&#xff09;主菜单&#xff08;2&#xff09;添加客户&#xff08;3&#xff09;修改客户&#xff08;4&#xff09;删除客户&#xff08;5&#xff09;客户列表 三、软件设计结构四、类的设计&#xff08;1&#xff09;Customer类…

79 电话号码的字母组合

电话号码的字母组合 题解1 回溯比较直观的理解 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入…

每日一题 274. H 指数(中等)

先讲一下自己的复杂的写法 第一眼最大最小值问题&#xff0c;直接在0和最大被引次数之间二分找答案先排序&#xff0c;再二分&#xff0c;&#xff0c;&#xff0c; 正解&#xff1a; 排序得到 citations 的递减序列&#xff0c;通过递增下标 i 遍历该序列显然只要排序后的 …

【教3妹学编程-java实战5】结构体字段赋值的几种方式

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 2哥 :3妹&#xff0c;考考你&#xff0c;你知道java结…

【SPSS】基于RFM+Kmeans聚类的客户分群分析(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Python学习笔记--初始化函数

六、初始化函数 1、什么是初始化函数 初始化函数的意思是&#xff0c;当你创建一个实例的时候&#xff0c;这个函数就会被调用。 比如&#xff1a; 当代码在执行 a ClassA() 的语句时&#xff0c;就自动调用了 __init__(self) 函数。 而这个 __init__(self) 函数就是初始化…

精通Linux系列第四章:Linux常用命令入门

文章目录 一、前言二、命令行介绍2.1 Shell概述2.2 命令行提示符2.3 命令行快捷键2.4 命令行历史和命令补全 三、基本命令3.1 ls - 列出文件和目录3.2 cd - 切换目录3.3 pwd - 显示当前工作目录3.4 mkdir - 创建目录3.5 rm - 删除文件和目录3.6 cp - 复制文件和目录3.7 mv - 移…

好题分享(2023.10.22——2023.10.28)

目录 ​编辑 前言&#xff1a; 题目一&#xff1a;《消失的数字》 1.先排序再遍历 2.异或 3.等差数列求和&#xff0c;再相减 题目二&#xff1a;《轮转数组》 1.开辟新的数组 2.原地逆序 题目三&#xff1a;《移除元素》 题目四&#xff1a;《删除有序数组的重复项…

【Java每日一题】——第四十三题:USB接口程序设计。(2023.10.29)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

拉扎维模拟CMOS集成电路设计西交张鸿老师课程P2~5视频学习记录

目录 p2 p3 p4 p5 --------------------------------------------------------------------------------------------------------------------------------- p2 -----------------------------------------------------------------------------------------------------…

问题 U: 折线分割平面(类比+规律)

规律类比&#xff1a; 1.一个折线的角&#xff0c;只会对应一个部分 2.若反向延长&#xff0c;角对应的部分被分为3部分 &#xff08;即一条折现线改为两条直线&#xff09; 3.所以n条折线分成的平面数&#xff0c;等于2n条直线减去2n 代码实现&#xff1a;

小程序源文件的简单获取方法分享

小程序的源文件地址 在微信的服务器上。普通用户想要直接获取到在微信服务器去获取,肯定是十分困难的,有没有别的办法呢? 简单思考一下我们使用小程序的场景就会明白,当我们点开一个微信小程序的时候,其实是微信已经将它的从服务器上下载到了手机,然后再来运行的。所以我…

【AD9361 数字接口CMOS LVDSSPI】A 并行数据之CMOS

〇、综述 本章介绍并行数据端口&#xff08;P0_D P1_D&#xff09;和串行外设接口&#xff08;SPI&#xff09;&#xff0c;用于在AD9361和BBP之间传输数据和控制/状态信息。 下图显示了这些接口&#xff0c;并提供了AD9361和BBP在宽带无线系统中的使用方式的高级视图。数据接…

python无向图最短距离问题

题目&#xff1a; 如下图所示无向图&#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409;&#xff0c;其中蓝色边的长度是 1、橘色边的长度是 2、绿色边的长度是 3&#xff0c;求从 A 点到 S 点的最短距离为多少&#x1f914; 我们得明白一…

人工智能在疾病治疗中的应用:机遇与挑战

人工智能在疾病治疗中的应用&#xff1a;机遇与挑战 随着人工智能技术的飞速发展&#xff0c;其在诸多领域的应用价值日益显现。本文将探讨人工智能技术在疾病治疗中的应用&#xff0c;包括其背景意义、技术概述、具体应用、发展前景以及总结。 一、背景意义 随着医学技术的…