发现问题
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/)
总结
学习是我快乐!