フォーム内のフォーム切り替えにより、relus のイベントがトリガーされません。理由: ページを切り替えるときに常に DOM を切り替えないでください。問題が発生するため、表示する必要があります。

変更前は、DOM のレンダリングが繰り返されるため、バインディング ルールが無効になっていました。

ここに画像の説明を挿入

修改前代码使用 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 を使用してページ上に表示されます。

ここに画像の説明を挿入

修改后各渲染各的
<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/> 

フォームにバインドされたルールは、ルールによってバインドされたすべてのイベントをトリガーするために 2 つの要素に関連付けられます。

1. ルール内の <el-form-itembound prop="aaa"

2. v-model="aaa" によってバインドされた aaa はルール内にあります

参考リンク

おすすめ

転載: blog.csdn.net/qq_43631129/article/details/132189664