ElementUI表单验证攻略:解决表单项启用和禁用验证的切换,怎么进行表单的验证

在Element UI中,当需要根据用户选择动态决定表单字段是否必填时,可以使用v-if进行元素切换来实现。通过设置v-if条件,配合过渡效果,可以优雅地隐藏或显示表单项。在验证时,可以通过监听用户的选择,清除相关验证字段的值并调用clearValidate方法移除验证状态,从而解决动态验证问题。
摘要由CSDN通过智能技术生成

在工作中遇到这样一个场景:需要在选中表单的某一项的时候才填某些数据,不选的时候就不需要填写,但是我们用elemnt-ui的时候,肯定都是写了验证的,怎么解决?

        看了一些解决方法,有这样的方案:ElementUI表单验证攻略:解决表单项启用和禁用验证的切换,以及动态表单验证的综合性问题_夜色芜染的博客-CSDN博客_element 表单禁用

他用的是v-if进行表单元素的切换,想来想去还是只有这样做,就是用了。还可以在外面添加过度的效果,看起来好看一点。

 <transition name="el-fade-in-linear">
      // 利用v-if="info.yjpl != 1"来对元素进行显示哥隐藏的切换
     <el-form-item  label="日喝水量"   prop="ryjl" key='ryjl' v-if="info.yjpl != 1" >  
          平均<el-input-number  :disabled="info.yjpl == 1" v-model="info.ryjl" controls-            position="right" placeholder="请输入内容" ></el-input-number>&nbsp;ml
      </el-form-item>
  </transition>

如果验证的时候,选择的是不需要喝水的按钮,就在验证里面这样写:

var validatorYjpl = (rule, value,callback) => {
      if (value == "1") {
        // 将所有的喝水情况清空
        this.info.ryjl = undefined
        this.info.sfjj = ""
        this.info.yjnl = undefined
        this.info.jjnl = undefined
        this.info.ksyjnl = undefined
        this.info.sfzj = ""
        this.info.yjzl = []
        this.info.yjzl_input = ""
       // 害怕element-ui会做验证,就处理一下,不用应该耶没有关系
        setTimeout(() => {
          this.$refs.infoRef.clearValidate(this.info.ryjl)
          this.$refs.infoRef.clearValidate(this.info.sfjj)
          this.$refs.infoRef.clearValidate(this.info.jjnl)
          this.$refs.infoRef.clearValidate(this.info.ksyjnl)
          this.$refs.infoRef.clearValidate(this.info.sfzj)
          this.$refs.infoRef.clearValidate(this.info.yjzl)  
        });
      }
      callback()
    }

现在就可以解决验证表单的问题了。

ps:表单验证要写callback()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值