elementui多表单验证

参考:https://blog.csdn.net/qq_42730111/article/details/123050220

data

      // 多个表单验证
      resultArr: [],
      formArr: ["form", "form1"],
      formvalidnum:0,

验证方法

    // 验证数组
    checkForm(formName) {
      let _self = this;
      _self.resultArr = [];
      let result = new Promise(function (resolve) {
        _self.$refs[formName].validate((valid) => {
          if (valid) {
            resolve(valid);
             _self.formvalidnum += 1;
          } else {
            _self.$confirm("请完善信息", "警告", {
              confirmButtonText: "确定",
              cancelButtonText: "取消",
              type: "warning",
            });
          }
        });
      }).catch((error) => {
        console.log("error", error);
      });
      _self.resultArr.push(result); //push 得到promise的结果
    },
    /** 提交按钮 */
    submitForm() {
      let _self = this;
      _self.formvalidnum = 0;
      _self.formArr.forEach((item) => {
        _self.checkForm(item);
      });
      Promise.all(_self.resultArr).then(function () {
        //通过了
        if (_self.form.orderName && _self.form.plandetailList.length == 0) {
          _self.$confirm("请选择有计划明细的订单", "警告", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          });
      return false;
        }
        if(_self.formvalidnum == _self.formArr.length){//只有一个验证通过也来
          console.log("所有表单验证通过");
        }
      });
}

 

posted @ 2022-05-25 11:28  jqynr  阅读(382)  评论(0)    收藏  举报