先上代码:

1、先取出针对手机号的验证

 2、this.$refs["elForm"].validate((valid) => {

          if (valid) {

            this.formData.level = "";

            putObj(this.formData).then((response) => {

              this.$message.success("修改成功");

              this.getList(this.page);

              this.dialogcheck = false;

            }).catch((err) => {

                this.$message.error(err);

              });

          } else {

            return false;

          }

        });

1、直接清除某个字段的验证

this.$refs["elForm"].clearValidate("phone");

但是我的代码还要对除了这个“phone”外的,其他表单,全部验证。结果发现,无效。猜想可能是因为双向绑定的问题。

2、用另一种方式清除

this.$refs.elForm.fields.map(i =>{ if(i.prop ==='phone'){ i.clearValidate() } })

依然不起作用,具体为什么,没有深入研究

3、采用一个个字段验证的方式,排除当前手机号的验证

this.$refs.examine.validateField("barCode");

this.rules.barCode= [{ required: true, message: '请上传图片' }]

 this.$refs['elForm'].validateField('a', (err) => {
    if (err) {
      isPass = false
    }
  })

很显然,不适合需求,也太麻烦

4、使用单独字段的形式

this.rules.phone[0].validator = (rule, value, callback) => {

              callback()

          }

phone字段,很明显是input框,但依然要phone[0],因为rules是个数组对象。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐