Element-UI清空表單及驗(yàn)證不生效的問(wèn)題解決
問(wèn)題描述
由于我將編輯與新增時(shí),表單使用的是同一個(gè)data中的數(shù)據(jù),這就導(dǎo)致出現(xiàn)了我點(diǎn)擊了編輯后,再次點(diǎn)擊新增時(shí),出現(xiàn)了數(shù)據(jù)依舊是剛才編輯表單中的數(shù)據(jù)。
解決辦法
嘗試一(不推薦)
通過(guò) 手動(dòng)給表單中的字段賦值 ,期初時(shí),能達(dá)到清除表單的效果,但是又出現(xiàn)了新的問(wèn)題。表單驗(yàn)證不通過(guò)。在一打開(kāi)對(duì)話框時(shí),就默認(rèn)觸發(fā)了表單的驗(yàn)證規(guī)則。

查閱Element-UI官方文檔,可以發(fā)現(xiàn)有有清除驗(yàn)證的方法 clearValidate 。

只需將該方法寫上,即可。
if (this.$refs.studentInfoRef) {
this.$nextTick(() => {
this.$refs.studentInfoRef.clearValidate();
});
}
嘗試二(推薦)
查閱Element-UI官方文檔可以發(fā)現(xiàn),官方提供了一個(gè)重置表單的 resetFields() 方法。

但發(fā)現(xiàn)調(diào)用Element-UI官方提供的 resetFields() 方法并未生效。甚至還出現(xiàn)了以下錯(cuò)誤 Error in v-on handler: "TypeError: Cannot read properties of undefined (reading 'resetFields')" 。不急,有解決辦法。

出現(xiàn)上述情況,嘗試用網(wǎng)絡(luò)上普遍認(rèn)為的錯(cuò)誤(很可能是起作用的生命周期不一致)解決辦法來(lái)解決。這時(shí)我們先將調(diào)用這個(gè)方法放到 this.$nextTick 中。

但是問(wèn)題依舊存在。

閱讀這個(gè)問(wèn)題,可以知道,說(shuō)的是這個(gè)未定義。好吧,可能還是生效的時(shí)間不對(duì),那我就加一個(gè)條件判斷,讓這個(gè)存在時(shí)在去執(zhí)行。
if (this.$refs.studentInfoRef) {
this.$nextTick(() => {
this.$refs.studentInfoRef.resetFields();
});
}
發(fā)現(xiàn)問(wèn)題得到了解決。這時(shí)有可能是瀏覽器緩存的問(wèn)題,還需要做的操作是需要再表單上添加 @close 方法。在關(guān)閉時(shí)清除清除表單,在打開(kāi)時(shí)清除表單驗(yàn)證,這個(gè)比較靠譜的一個(gè)解決辦法。


總結(jié)
在使用Element-UI重置表單的方式時(shí),一定要記住,表單中的prop屬性不要漏掉。

在查看方法使用時(shí),并未提到prop這個(gè)屬性,但繼續(xù)往下閱讀文檔,就會(huì)發(fā)現(xiàn),這個(gè)屬性是必須的。

注意prop屬性值需要與model中的值一致。

注意: 在 this.$refs.studentInfoRef.resetFields(); 這一句話中, studentInfoRef 需要與表單中的ref一致,且不能去其他的ref重名。
到此這篇關(guān)于Element-UI清空表單及驗(yàn)證不生效的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Element清空表單及驗(yàn)證不生效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- element ui提交表單返回成功后自動(dòng)清空表單的值的實(shí)現(xiàn)代碼
- 詳解element-ui中表單驗(yàn)證的三種方式
- Vue ElementUI之Form表單驗(yàn)證遇到的問(wèn)題
- element 結(jié)合vue 在表單驗(yàn)證時(shí)有值卻提示錯(cuò)誤的解決辦法
- Element UI 自定義正則表達(dá)式驗(yàn)證方法
- vue中使用element-ui進(jìn)行表單驗(yàn)證的實(shí)例代碼
- vue elementui form表單驗(yàn)證的實(shí)現(xiàn)
- 解決vue+ element ui 表單驗(yàn)證有值但驗(yàn)證失敗問(wèn)題
相關(guān)文章
vue實(shí)現(xiàn)簡(jiǎn)單圖片上傳功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)單圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
vue的rules驗(yàn)證部分可以部分又失效的原因及解決方案
vue的rules驗(yàn)證失效,部分可以部分又失效,很多百度都有,但是我這里遇到了一個(gè)特別的,那就是prop沒(méi)有寫全,導(dǎo)致驗(yàn)證某一個(gè)失效,接下來(lái)就跟小編一起來(lái)看看這個(gè)失效的原因和解決方案吧2023-11-11
v-show?和?v-if?的區(qū)別及使用場(chǎng)景分析
v-show通過(guò)CSS控制顯示隱藏,保持DOM元素,適合頻繁切換;v-if根據(jù)條件生成/銷毀DOM,影響生命周期,適用于靜態(tài)條件,兩者在性能、渲染方式及組件狀態(tài)管理上有顯著差異,需根據(jù)具體場(chǎng)景選擇,本文通過(guò)實(shí)例代碼解析v-show和v-if的區(qū)別及使用,感興趣的朋友一起看看吧2025-09-09
解決Vue數(shù)據(jù)更新了但頁(yè)面沒(méi)有更新的問(wèn)題
在vue項(xiàng)目中,有些我們會(huì)遇到修改完數(shù)據(jù),但是視圖卻沒(méi)有更新的情況,具體的場(chǎng)景不一樣,解決問(wèn)題的方法也不一樣,在網(wǎng)上看了很多文章,在此總結(jié)匯總一下,需要的朋友可以參考下2023-08-08
vue 內(nèi)置過(guò)濾器的使用總結(jié)(附加自定義過(guò)濾器)
這篇文章主要介紹了vue 內(nèi)置過(guò)濾器的使用總結(jié)(附加自定義過(guò)濾器),詳細(xì)的介紹了各種過(guò)濾器的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
vue動(dòng)態(tài)設(shè)置img的src路徑實(shí)例
今天小編就為大家分享一篇vue動(dòng)態(tài)設(shè)置img的src路徑實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Vue3.5中新增的baseWatch函數(shù)用法詳解
在Vue 3.5.0-beta.3版本中新增了一個(gè)base watch函數(shù),這個(gè)函數(shù)用法和我們熟知的watch API一模一樣,下面就跟隨小編一起來(lái)了解一下它的具體使用吧2024-11-11
vue 獲取url參數(shù)、get參數(shù)返回?cái)?shù)組的操作
這篇文章主要介紹了vue 獲取url參數(shù)、get參數(shù)返回?cái)?shù)組的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

