当前位置: 首页 > news >正文

vue项目中使用Element多个Form表单同时验证

一、项目需求

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

二、实现效果

三、多个表单验证

注意项:多个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.lryc.cn/news/286641.html

相关文章:

  • 自然语言处理--概率最大中文分词
  • k8s-基础知识(Service,NodePort,CusterIP,NameSpace,资源限制)
  • 【腾讯云】您使用的腾讯云服务存在违规信息,请尽快处理
  • 深度学习 Day27——J6ResNeXt-50实战解析
  • 【力扣 50】Pow(x, n) C++题解(数学+递归+快速幂)
  • 速盾:服务器接入CDN后上传图片失败的解决方案
  • LabVIEW高级CAN通信系统
  • FastSpeech2——TTS论文阅读
  • 如何才能拥有比特币 - 01 ?
  • Unity | 渡鸦避难所-8 | URP 中利用 Shader 实现角色受击闪白动画
  • K8S--安装metrics-server,解决error: Metrics API not available问题
  • flume自定义拦截器
  • 安卓Spinner文字看不清
  • 深入浅出hdfs-hadoop基本介绍
  • 宝塔面板部署MySQL并结合内网穿透实现公网远程访问本地数据库
  • 数据结构<1>——树状数组
  • Servlet生命周期
  • npm i 报一堆版本问题
  • Linux设备管理模型-01:基础数据结构
  • opencv#32 可分离滤波
  • android 导航app 稳定性问题总结
  • 第11次修改了可删除可持久保存的前端html备忘录:将样式分离,可以自由秒添加秒删除样式
  • hcip高级网络知识
  • 常用电子器件学习——MOS管
  • System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
  • 数据库(SQL语句:DMLDQL)
  • AnimatedDrawings:让绘图动起来
  • 红黑树浅浅学习
  • QGraphicsView 如何让图形大小适配窗口
  • sqlmap使用教程(3)-探测注入漏洞