您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“element select必填項驗證回顯問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“element select必填項驗證回顯問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
今天在做頁面的時候,需要含有兩個form表單,表單的內容以及驗證信息的重置。
因為兩個表單綁定的字段有些重復,并同時要設置必選項,導致當一個表單標紅,關閉后還是回顯紅色,并且另一個表單也受到了影響。然后排查了好久才解決。
1、v-model 綁定的數據要和上面的prop的名稱不一致
2、type類型不一致
3、form表單以及打開的Dialog對話框未區分開
<el-select>中v-model 綁定的數據要和上面的<el-form-item>中prop的名稱一致。
<el-form-item label="XXX" prop="eqId" v-if="queryParams.testStatus === '0'"> <el-select v-model="form.eqId" placeholder="請選擇XXXX" clearable >
但是我的v-model和prop名稱是一致的,我又搜了好半天,發現官網上說Form表單校驗內置 async-validator,默認是的字段類型是string類型(字符串型)。
如果他的選擇類別是id的話,需要成number才可以,于是我又試了試。
eqId: [ { required: true, message: "XXX不能為空",trigger: "change",type:'number'}, ],
但是給我提示,他不是number類型,含淚繼續研究
我看了半天也沒研究出來,最后還是一位大佬提醒我,我的頁面有兩個表單,驗證需要區分開,我才突然想起來,趕緊在resetFrom中做了區分。
if (this.item.Number === '1' || this.item.Number=== '2'){ this.resetForm("form"); }else if(this.item.Number=== '3'){ this.resetForm("irform"); }
然后發現他們兩個form不會互相影響了,但是測試的時候發現頁面關閉后再打開,同一個表單下的頁面標紅項依舊回顯。含淚繼續看,最后發現因為幾個頁面用的同一個dialog對話框,我只進行了字段判斷打開不同頁面的判斷,但是未進行dialog中:visible.sync屬性進行判斷。
<el-dialog :title="title" :visible.sync="open" append-to-body :close-on-click-modal="false" > <el-form ref="form" :model="form" :rules="rules" label-width="110px" v-if="(item.Number === '1' || item.Number === '2') && open"> ... 不重要的一些代碼 ... </el-form> <el-form ref="irform" :model="irform" :rules="rules" label-width="115px" v-if="item.Number === '3' && open "> </el-form> </el-dialog>
我設置的:visible.sync=open,所以&&open
讀到這里,這篇“element select必填項驗證回顯問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。