vue + element ui 同时提交多个表单的表单验证

使用场景

在写项目的过程中,遇到了需要同时提交多个表单并且需要同时验证通过了才可以提交数据,调用接口,所以这个时候,平时提交的一个表达的方法就不是很合适,那处理这种情况应该怎么弄呢?

使用方法

刚开始没有什么思路,最后在网上搜索到了一些例子,都说同时验证多个表单,使用Promise all方法

百看不如一试!上代码:

先定义一个用来检测表单是否通过验证的公共方法

checkForm(formName) {
  return new Promise((resolve, reject) => {
    this.$refs[formName].validate(valid => {
      if (valid) {
        resolve()
      } else reject()
    })
  })
},

formName绑定的表单的ref的值

然后在提交表单的点击事件里面使用Promise all()方法来检测页面中所有的表单是否都有通过验证,通过验证就可以继续写上逻辑代码,不成功就抛出未通过校验的错误

submit(){
  let list = [] //这个数组就是一个用来存放所有表单验证结果的集合
  list.push(
    this.checkForm('form'),//绑定的表单1
    this.checkForm('form1') //绑定的表单2
  )
  Promise.all(list)
    .then(() => {
      console.log('表单校验通过')
      //逻辑操作代码
    })
    .catch(() => {
      console.log('表单校验未通过')
    })
},
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值