elementUI Form表单多个form验证都通过后,再执行后面的操作

news/2024/12/5 4:35:07/
  • 一、具体情况:

formA、formB、formC。其中,formA的rules验证规则中,含有异步操作,会先调用后台接口,验证身份证是否存在。如下:

 data () {

    let isIdcardExist = (rule, value,callback)=>{

      if(!this.formEdit){

        checkIdCard(this.baseForm.idCard).then((res) => {

          if(res.data.data){

            callback(new Error(rule.message))

          }else{

            callback()

          }

        });

      }else{

        callback()

      }

    }

    return {

      rules:{

        idCard: [

          { required: true, message: "请输入身份证", trigger: "blur" },

          { validator: isIdcardExist, message: "身份证号已经存在", trigger: "blur"}

        ],

      },

    };

  },

  • 二、问题:

如果同步验证formA、formB、formC,会发现formB和formC验证提示了,而formA虽然给提示了,但是没有拦截住,继续走下面的保存接口了。因为异步操作还没返回,就执行了下面同步的操作。

  • 三、解决办法

用promise.all对formA、formB、formC进行验证。

  • 四:具体方案如下:

(1)三个组件formA、formB、formC中,都需要在method中加入方法validate

methods: {

    validate(callback){

      this.$refs.baseForm.validate((valid) => {

        callback(valid)

      })

    },

(2)父组件中,定义对应三个promise

formA = new Promise((resolve, reject) => {

        this.$refs["formA "].validate((valid) => {

          if (valid) {

            resolve()

          } else {

            reject(false)

          }

        });

      })

formB、formC同理。

(3)promise.all操作

Promise.all([formA,formB,formC]).then((res) => {

      }).catch(error => {

      })

    },


http://www.ppmy.cn/news/20166.html

相关文章

机器自动翻译古文拼音 - 十大宋词 - 扬州慢 淮左名都 姜夔

扬州慢淮左名都 南宋姜夔 淮左名都,竹西佳处,解鞍少驻初程。 过春风十里,尽荠麦青青。 自胡马窥江去后,废池乔木,犹厌言兵。 将黄昏,清角吹寒,都在空城。 杜郎俊赏,算而今重到须惊…

C++绑定器

前言 在学习中,有句bind相关的代码看了一天终于懂了意思。。记录下 1. 问题引入 当时我看的部分是muduo的简单使用,卡在了这两句上 //给服务器注册用户连接的创建和断开回调 _server.setConnectionCallback(std::bind(&ChatServer::onConnection, …

零食商城|基于springboot的零食商城

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

高级通讯录(C语言)

目录 前言 为何要实现高级通讯录 高级通讯录实现: 创建通讯录 打印菜单 初始化通讯录 实现加载功能 实现添加功能 实现增容功能 实现删除功能 实现查询功能 实现修改功能 实现查询所有联系人功能 实现排序功能 实现清空功能 实现保存功能 实现退出功能 通讯录总代码…

【手写 Promise 源码】第五篇 - 实现 Promise 对异步操作的支持

一,前言 上一篇,翻译并理解了整个 Promise A 规范; 本篇开始,将基于 Promise A 规范,对我们的简版 Promise 源码进行功能完善; 本篇,将实现 Promise 对异步操作的支持; 二&#x…

嵌入式 学习

自学嵌入式当然可以,但别做单片机,单片机有基础就够了,别太深入。 先上结论,嵌入式方向太多了,学生时期最重要的是把某一方向的基础学扎实。嵌入式主要方向有Linux应用开发,Linux驱动开发,BSP&a…

函数的连续性和间断点——“高等数学”

各位CSDN的uu们你们好呀,今天小雅兰的内容是高等数学中的函数的连续性和间断点,好的,那现在就让我们进入函数的连续性和间断点的世界吧 一、函数的连续性 1.函数增量 2.连续的定义 3.单侧连续 二、例题(函数的连续性) …

Hive整合HBase,操作HBase表

Hive over HBase原理 Hive与HBase利用两者本身对外的API来实现整合,主要是靠HBaseStorageHandler进行通信,利用 HBaseStorageHandler,Hive可以获取到Hive表对应的HBase表名,列簇以及列,InputFormat和 OutputFormat类&…