ElementUI--表单验证以及踩坑

本文介绍了Vue.js中两种表单验证方法——整体验证和局部验证,并指出了其弊端,即每次验证都会发起多次请求。为了解决这个问题,提出了使用if判断进行预验证的替代方案,以减少不必要的请求。同时,讨论了这种方法的临时有效性,期待未来能找到更好的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表单验证以及踩坑

  • 验证方法–整体验证(validate)
this.$refs["ruleForm"].validate((valid) => {
    if(valid){
       //这里执行你验证通过需要用的代码
    }else{
       //这里执行验证未通过的代码
       console.log("error submit!!");
       return false;
    }
}
  • 验证方法–局部验证(validateField)
- 单个验证
this.$refs["ruleForm"].validateField("phone", (valid) => {
   if(valid){
       //这里执行你验证通过需要用的代码
    }else{
       //这里执行验证未通过的代码
       console.log("error submit!!");
       return false;
    }
}
- 多个验证
this.$refs["ruleForm"].validateField(['username','password'], (valid) => {
  if(valid){
       //这里执行你验证通过需要用的代码
    }else{
       //这里执行验证未通过的代码
       console.log("error submit!!");
       return false;
    }
}
  • 弊端☝
上述验证方法你验证几个就会发起几次请求,暂时还没有想到解决方案
  • 替代方案-if判断
handleClick(){
   let that = this;
   let validData = {
       username:that.ruleForm.username,
       loginpassword:that.ruleForm.loginpassword
   };
   if (validData .username == '' || validData .loginpassword == '') {
           this.$refs["ruleForm"].validateField("phone");
           this.$refs["ruleForm"].validateField("loginpassword");
   } else {
           //这里执行你验证通过需要用的代码
           //Forexample:
           this.$api.login.post().then((res)=>{}).catch(()={})
   })
}
上述验证方法可以暂时解决,还没有其他更好的思路,等后面有更好方案继续更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值