vue+element-ui 實現重置表單內容


  今天在做入院管理的時候,需要實現表單內容以及驗證信息的重置,具體效果如下:

  當我再點擊添加添加住院患者按鈕打開表單時,應該是這個樣子的:

  根據Element-UI官方文檔提供的方法,我們可以使用這個函數:

resetForm(formName) { this.$refs[formName].resetFields(); }

  實際使用的時候代碼:

this.visible = true; this.resetForm('form');

  先顯示對話框,再重置表單,如果這兩行代碼順序顛倒,點擊添加住院患者就是沒有反應的,如下圖所示:

  至此,重置表單內容這個功能做的差不多了,但我發現了一個問題,當我點擊添加住院患者按鈕,彈出表單dialog之后,我的下拉框是沒有數據的。

  

  當我關閉這個dialog,再重新打開的時候,這里的數據就有了。我感覺是跟我的表單驗證有關,但問題具體是怎么產生的我不清楚,這個表單驗證只是把里面的內容重置為初始值,我的數據在頁面刷新之后應該是可以正常拿到的。

  不清楚問題是怎么發生的,那就只好看看控制台了。我對比了刷新頁面后第一次打開表單dialog和第二次打開表單dialog發生的錯誤,果然,第一次打開表單時出現了一個特殊的錯誤,而第二次打開表單時該錯誤就消失了。

  百度了一下這個錯誤,找到了https://www.cnblogs.com/blueroses/p/7722233.html這篇文章,這個博主老哥跟我的情況基本一模一樣,解決方法他也提到了。

 

   按照人家的方法,將代碼修改如下:

resetForm(formName){ if (this.$refs[formName]!==undefined) { this.$refs[formName].resetFields(); } }

  問題完美解決!刷新頁面后第一次打開表單也能獲取到數據了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM