最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue element實現(xiàn)多個Formt表單同時驗證

 更新時間:2024年06月07日 16:53:33   作者:清風拂山感  
這篇文章主要介紹了vue element實現(xiàn)多個Formt表單同時驗證方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue element多個Formt表單同時驗證

多個Form內(nèi)容統(tǒng)一提交驗證

<el-form   ref="form1"></el-form>
<el-form   ref="form2"></el-form>
<el-form   ref="form3"></el-form>
<el-form   ref="form4"></el-form>
export default{
    data(){
        resultArr:[],//接受驗證返回結果數(shù)組
        formArr:['form1','form2','form3','form4'],//存放表單ref數(shù)組
    },
    methods:{
        //封裝驗證函數(shù)
        checkForm(formName){
            let _self=this;
            _self.resultArr = []
            let result = new Promise(function(resolve, reject) {
            _self.$refs[formName].validate((valid) => {
                if (valid) {
                    resolve();
                } else { reject() }
                })
            })
            _self.resultArr.push(result) //push 得到promise的結果
        },
        submit(){
            let _self=this;
            _self.formArr.forEach(item => { //根據(jù)表單的ref校驗
                _self.checkForm(item)
            })
           //resultArr數(shù)組的值必須是promise對象才能使用Promise.all,在checkForm做了這一步
            Promise.all(_self.resultArr).then(function() { //都通過了
              alert('所有表單驗證通過')
              // 該區(qū)域使用this無效,promise內(nèi)面的this表示局部,并不代表VueComponet實例
            }).catch(function() {
                console.log("err");
            });
        }
    }
}

vue多個表單校驗 (巧用new promise)

場景

同一個頁面有多個模塊,每個模板又單獨使用了一個表單組件,那么我們在點擊提交按鈕時如何同時校驗多個表單,我們可以使用Promise

方案

  • 1、子組件

子組件:return 出當前的表單的數(shù)據(jù)

onSubmit() {
    let _self=this
    return new Promise((resolve, reject) =>{
        _self.$refs.form.validate(valid => {
            if (valid) { // 檢驗成功 傳當前表單的數(shù)據(jù)
                resolve({0:_self.form})
            } else {
                this.$message.error('員工自選-清單需求,請按要求填寫')
                reject()
            }
        })
    })
},
  • 2、父組件
<!-- 方案需求 -->
<div v-show="active === 2">
    <FormEmployeeList ref="Form0"></FormEmployeeList>
    <FormEmployeeGift ref="Form1"></FormEmployeeGift>
    <FormEmployeeCustomization ref="Form2"></FormEmployeeCustomization>
    <FormEnterprisesList ref="Form3"></FormEnterprisesList>
    <FormEnterprisesGift ref="Form4"></FormEnterprisesGift>
    <FormEnterprisesCustomization ref="Form5"></FormEnterprisesCustomization>
</div>

父組件:onSubmit時,調(diào)用子組件的onSubmit方法,接受promise的返回結果,再通過Promise.all()方法一一驗證

onSubmit() {
    let  newArr = [] //承接promise的返回結果
    for (let v = 0; v < 6; v ++) {
        let res =this.$refs['Form' + v].onSubmit()
        newArr.push(res)
    }
    Promise.all(newArr).then(res => { //都通過了
    	console.log('res',res)
        //res是數(shù)組,需轉(zhuǎn)對象
        let obj = Object.assign({},...res)
        this.form = obj
        console.log('大功告成',this.form)
    }).catch(err=> {
        console.log('err',err)
    })
},

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 利用Vue3實現(xiàn)一個可以用js調(diào)用的組件

    利用Vue3實現(xiàn)一個可以用js調(diào)用的組件

    最近遇到個功能要求,想要在全局中調(diào)用組件,而且要在某些js文件內(nèi)調(diào)用,所以這篇文章主要給大家介紹了關于如何利用Vue3實現(xiàn)一個可以用js調(diào)用的組件的相關資料,需要的朋友可以參考下
    2021-08-08
  • VUE使用vue?create命令創(chuàng)建vue2.0項目的全過程

    VUE使用vue?create命令創(chuàng)建vue2.0項目的全過程

    vue-cli是創(chuàng)建Vue項目的一個腳手架工具,vue-cli提供了vue create等命令,下面這篇文章主要給大家介紹了關于VUE使用vue?create命令創(chuàng)建vue2.0項目的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Vue.js中使用${}實現(xiàn)變量和字符串的拼接方式

    Vue.js中使用${}實現(xiàn)變量和字符串的拼接方式

    這篇文章主要介紹了Vue.js中使用${}實現(xiàn)變量和字符串的拼接方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue-cli腳手架創(chuàng)建項目遇到的坑及解決

    vue-cli腳手架創(chuàng)建項目遇到的坑及解決

    這篇文章主要介紹了vue-cli腳手架創(chuàng)建項目遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 為vue項目自動設置請求狀態(tài)的配置方法

    為vue項目自動設置請求狀態(tài)的配置方法

    這篇文章主要介紹了vue項目自動設置請求狀態(tài)的配置方法,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Vuex的四個常用核心概念解讀

    Vuex的四個常用核心概念解讀

    本文詳細解析了Vuex中的四個核心概念及其區(qū)別,包括State用于存儲狀態(tài),Getters用于計算屬性并緩存,Mutations是唯一更改State的同步方法,Actions則用于提交Mutations且支持異步操作
    2024-11-11
  • Vue數(shù)據(jù)變了但頁面沒有變的幾種情況及解決方法

    Vue數(shù)據(jù)變了但頁面沒有變的幾種情況及解決方法

    如果,你發(fā)現(xiàn)自己需要在Vue中做一次強制更新,99.99%的情況,是你在某個地方做錯了事,本文給大家就介紹了Vue數(shù)據(jù)變了,但頁面沒有變的幾種情況及解決方法,并通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • Vue3使用路由及配置vite.alias簡化導入寫法的過程詳解

    Vue3使用路由及配置vite.alias簡化導入寫法的過程詳解

    這篇文章主要介紹了Vue3使用路由及配置vite.alias簡化導入寫法,本文通過實例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • vue如何利用axios調(diào)用后臺api接口

    vue如何利用axios調(diào)用后臺api接口

    這篇文章主要介紹了vue如何利用axios調(diào)用后臺api接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 使用Vue3和ApexCharts實現(xiàn)3D徑向條形圖的代碼

    使用Vue3和ApexCharts實現(xiàn)3D徑向條形圖的代碼

    徑向條形圖是一種用于可視化單一數(shù)據(jù)點及其與目標或理想值的關系的圖表類型,它在顯示進度、完成率或其他類似度量時非常有用,本文給大家介紹了使用Vue3和ApexCharts實現(xiàn)3D徑向條形圖,感興趣的小伙伴可以參考閱讀下
    2024-06-06

最新評論

綦江县| 隆化县| 贡山| 临桂县| 广宗县| 五莲县| 习水县| 嘉兴市| 满洲里市| 漳平市| 油尖旺区| 五台县| 永寿县| 湟中县| 宜章县| 博罗县| 凤凰县| 潮州市| 孝义市| 仁寿县| 翁牛特旗| 道孚县| 开鲁县| 汉中市| 武安市| 抚宁县| 竹山县| 白河县| 卓尼县| 平利县| 阳城县| 新乡市| 桦甸市| 蓬莱市| 谢通门县| 淮南市| 衡东县| 慈溪市| 鄢陵县| 鹿泉市| 西丰县|