elementUI中validateField对多个部分表单字段进行校验时多次回调问题的完美解决方案

在网上看到了他人的解决方案,发现他们的方案是不对的,他们只是单单解决了验证错误,却没有解决验证正确的情况下。

1.首先,我们得知道,使用validateField部分校验数组的时候,数组有几位,就会回调几次。当也就是空的时候,表示验证通过,回调返回为“ ”,所以就是,你校验几个规则,就会返回几个结果,如果通过就为“”(空)。

2.我们只需要定义一个数组

const validateFieldList= []

3.每当校验,就像数组中push该message值

validateFieldList.push(errorMsg) 

4.然后我们需要判断每个item是否为空,且该数组的长度是否等于你要校验值的个数。

if ( validateFieldList.length == 2 &&validateFieldList.every((item) => item === ""))

//这里的2为你要校验值的个数

//网上的其他方法错就错在这里,他们没有校验数组长度,从而第一次validateFieldList的每一项item就等于“”,从而并没有起到该有的效果。

5.最后贴上完整:

//这是登录按钮事件
    submitLoginForm(formName) {
      console.log("点击了登录")
      let validateFieldList= []
      this.$refs[formName].validateField(
        ["email", "password"],
        async (errorMsg) => {
          if (!errorMsg) {
            validateFieldList.push(errorMsg)
            if (validateFieldList.length == 2 && validateFieldList.every((item) => item === "")
            ) {
              // 之后的操作
              
            }
          } else {
            console.log("error submit!!")
            return false
          }
        }
      )
    },


                        
原文链接:https://blog.csdn.net/CHENC0518/article/details/124353155

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值