关于v-if会导致Element Ui表单中下拉框验证红星不会消失问题

发现问题

elementui 表单 通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。
但实际上我碰到一种选择下拉框验证(其它比如输入框正常),选中值后不消失的问题,奇怪的是点击表单确定后它就消失了。请添加图片描述

问题原因

找了无数种原因,包括单独写验证,标签里面写验证,一个字母字母对照。。。最后
大佬同事帮我看过后,终于找到了原因。因为我要用不同的选择来渲染表单,所以我习惯性采用了v-if,而v-if通过控制Dom节点的存在与否来控制元素的显隐,所以大概是选择下拉框经过dom加载后选择表单验证没有及时加载,只有点击确定后才会加载并编译。
请添加图片描述

解决办法

v-if变为v-show

为什么v-show就没问题呢?
编译条件:v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(编译被缓存?编译被缓存后,然后再切换的时候进行局部卸载); v-show是在任何条件下(首次条件是否为真)都被编译,然后被缓存,而且DOM元素保留;(转自作者:弹指一挥间_e5a3 链接:https://www.jianshu.com/p/7af8554d8f08/)

总结

学习是我快乐!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值