vue+elementUI多表單同時提交及表單校驗最新解決方案
問:
假設有一個頁面,需要分三步填寫三個表單,且每個表單位于獨立的組件中,然后最后保存同時提交,如何進行表單必填項校驗?
答:
1. 為每個組件設置ref,值分別為ref1,ref2,ref3,再為各個組件中的el-form設置獨立的ref和rules,三個表單的ref值分別為form1,form2,form3.
// 組件1 <Component1 ref="ref1"></Component1> <template> <div> <el-form ref="form1"></el-form> </div> </template> // 組件2 <Component2 ref="ref2"></Component2> <template> <div> <el-form ref="form2"></el-form> </div> </template> // 組件3 <Component3 ref="ref3"></Component3> <template> <div> <el-form ref="form3"></el-form> </div> </template>
2. 父級組件引入三個子組件
<Component1 ref="ref1"></Component1> <Component2 ref="ref2"></Component2> <Component3 ref="ref3"></Component3> <button @click="onSave">保存</button>
3. 保存方法實現(xiàn)
<script> ... methods: { onSave(){ let formData1 = this.$refs.ref1.$refs.form1; let formData2 = this.$refs.ref2.$refs.form2; let formData3 = this.$refs.ref3.$refs.form3; Promise.all([formData1, formData2 ,formData3].map(this.getFormPromise)).then(res=>{ const validateResult = res.every((item) => !!item); if (validateResult) { // 校驗通過,獲取各個組件中的表單內(nèi)容,提交后臺 }else { this.$message.warning('必填內(nèi)容未填寫'); } }) }, getFormPromise(form) { return new Promise((resolve) => { form.validate((res) => { resolve(res); }); }); }, } </script>
到此這篇關于vue+elementUI多表單同時提交及表單校驗解決方案的文章就介紹到這了,更多相關vue elementUI多表單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue-cli3.0+element-ui上傳組件el-upload的使用
這篇文章主要介紹了vue-cli3.0+element-ui上傳組件el-upload的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12vite+vue3不清除瀏覽器緩存直接下載最新代碼的解決方案
vite+vue3項目發(fā)布后,瀏覽器上還是舊代碼,沒有及時更新到最新代碼,下面通過本文給大家分享vite+vue3不清除瀏覽器緩存直接下載最新代碼的解決方案,感興趣的朋友一起看看吧2024-06-06vue-element-admin關閉eslint的校驗方式
這篇文章主要介紹了vue-element-admin關閉eslint的校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08vue3+ElementPlus封裝函數(shù)式彈窗組件詳解
這篇文章主要為大家詳細介紹了如何利用vue3和ElementPlus封裝函數(shù)式彈窗組件,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-08-08