v-if 導(dǎo)致 elementui 表單校驗失效問題解決方案
問題
在使用 elementui 表單的過程中,某些表單項需要通過 v-if 來判斷是否展示,但是這些表單項出現(xiàn)了檢驗失效的問題。
解決方法
1、給需要 v-if 判斷的表單項添加 key 值
<el-form ref="form" :model="form"> <el-form-item :key="0" v-if="hasItem" label="名稱" prop="type"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item :key="1" v-if="hasItem" label="類型" prop="type"> <el-input v-model="form.type"></el-input> </el-form-item> </el-form>
2、將校驗規(guī)則直接綁定在 el-form-item 上
<el-form ref="form" :model="form"> <el-form-item :rules="{required: true, message:'請輸入名稱', trigger: 'change'}" v-if="hasItem" label="名稱" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item :rules="{required: true, message:'請輸入類型', trigger: 'change'}" v-if="hasItem" label="類型" prop="type"> <el-input v-model="form.type"></el-input> </el-form-item> </el-form>
3、v-show 代替 v-if
這種方法存在一個問題,就是如果 v-if 判斷的表單項中如果存在相同字段的項就會導(dǎo)致重復(fù)校驗的問題,所以這種方法需要在判斷的表單項字段都不相同的情況下使用。
<el-form ref="form" :model="form"> <el-form-item v-show="hasItem" label="名稱" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item v-show="hasItem" label="類型" prop="type"> <el-input v-model="form.type"></el-input> </el-form-item> </el-form>
4、使用自定義校驗規(guī)則
<el-form ref="form" :model="form"> <el-form-item :key="0" v-if="hasItem" label="名稱" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item :key="1" v-if="hasItem" label="類型" prop="type"> <el-input v-model="form.type"></el-input> </el-form-item> </el-form>
const checkName = (rule, value, callback) => { if (!value) { return callback(new Error('名稱不能為空')); } } data(){ return{ rules: { name: [ { validator: checkName , trigger: 'change' } ], } } }
到此這篇關(guān)于v-if 導(dǎo)致 elementui 表單校驗失效問題解決的文章就介紹到這了,更多相關(guān)elementui 表單校驗失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Vue-draggable組件實現(xiàn)Vue項目中表格內(nèi)容的拖拽排序
這篇文章主要介紹了利用Vue-draggable組件實現(xiàn)Vue項目中表格內(nèi)容的拖拽排序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06antv完成區(qū)間柱形圖一列多柱配置實現(xiàn)詳解
這篇文章主要為大家介紹了antv完成區(qū)間柱形圖一列多柱配置實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10vue3?ts編寫echart是tooltip無法展示的解決
這篇文章主要介紹了vue3?ts編寫echart是tooltip無法展示的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10解決vue props傳Array/Object類型值,子組件報錯的情況
這篇文章主要介紹了解決vue props傳Array/Object類型值,子組件報錯的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11