今天在做入院管理的時候,需要實現表單內容以及驗證信息的重置,具體效果如下:
當我再點擊添加添加住院患者按鈕打開表單時,應該是這個樣子的:
根據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(); } }
問題完美解決!刷新頁面后第一次打開表單也能獲取到數據了。