修改前,因为重复渲染DOM导致绑定rules失效
修改前代码使用 computed 计算出渲染的DOM,影响rules事件
<el-form
ref="form"
inline
:model="billDetailCopy"
:rules="rules"
size="small"
label-position="right"
label-width="110px"
class="addInvoice-content-input">
<el-row>
<el-form-item v-for="(item,index) in filter(ordinaryList)" :key="index" :prop="item.key" :label="item.label" >
<el-form-item/>
<el-form/>
修改后,将切换的DOM使用v-show都渲染在页面,不会让rules错乱。
修改后各渲染各的
<el-form
v-show="billDetailCopy.type === '增值税普通发票'"
ref="form1"
inline
:model="billDetailCopy"
:rules="rules"
size="small"
label-position="right"
label-width="110px"
class="addInvoice-content-input">
<el-row>
<el-form-item v-for="(item,index) in ordinaryList" :key="index" :prop="item.key" :label="item.label" >
<el-form-item/>
<el-form/>
form 中绑定的 rules 跟两个元素有关,才能触发rules绑定的每一个事件
1、 <el-form-item 绑定的 prop=“aaa” 在 rules中
2、v-model=“aaa” 绑定的 aaa 在 rules 中
参考链接