element表单组件使用v-if控制item显隐时,表单校验不生效的问题

文章讲述了在ElementUI中,当使用v-if或v-show控制el-form-item的显示时,必填校验可能失效。解决方法是将rules属性中的required设置为v-if的条件表达式,确保在需要时进行校验。

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

原代码

<el-form :model="form" :rules="rules" ref="form">

<el-form-item prop="aaa" v-if="myStatus">

<el-date-picker v-model="form.aaa" value-format="yyyy-MM-dd HH:00:00" type="datetimerange"

range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd HH:mm:ss"/>

</el-form-item>

</el-form>

js:

rules: {

  aaa: [{ required: true, message: "请输入名称", trigger: "blur", }, ],

}

 此处修改了v-if的条件之后,由显示变隐藏再使其显示,就出现了错误。输入了值以后还是一直提示未输入,尝试修改代码将v-if改成v-show之后突然发现可以了。并且如果需要使用自带必填校验的样式的话,需将rules写成带判断是否需要校验;如果不需要原生的必填样式可以使用自定义的校验规则。

修改后代码:

<el-form :model="form" :rules="rules" ref="form">

<el-form-item prop="aaa" v-show="myStatus"

:rules="{required: myStatus?true:false,message: '请输入xxx',trigger: 'blur',}">

<el-date-picker v-model="form.aaa" value-format="yyyy-MM-dd HH:00:00" type="datetimerange"

range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd HH:mm:ss"/>

</el-form-item>

</el-form>

后查阅信息发现了问题原因:v-if/v-show中使用el-form表单校验,解决校验不生效的问题_element v-if显示form绑定问题-优快云博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值