欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2024年06月07日 16:53:33   作者:清風(fēng)拂山感  
這篇文章主要介紹了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:[],//接受驗證返回結(jié)果數(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的結(jié)果
        },
        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)

場景

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

方案

  • 1、子組件

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

onSubmit() {
    let _self=this
    return new Promise((resolve, reject) =>{
        _self.$refs.form.validate(valid => {
            if (valid) { // 檢驗成功 傳當(dāng)前表單的數(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的返回結(jié)果,再通過Promise.all()方法一一驗證

onSubmit() {
    let  newArr = [] //承接promise的返回結(jié)果
    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)
    })
},

總結(jié)

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

相關(guān)文章

  • 基于 Vue.js 之 iView UI 框架非工程化實踐記錄(推薦)

    基于 Vue.js 之 iView UI 框架非工程化實踐記錄(推薦)

    為了快速體驗 MVVM 模式,我選擇了非工程化方式來起步,并選擇使用 Vue.js,以及基于它構(gòu)建的 iView UI 框架。本文給大家分享基于 Vue.js 之 iView UI 框架非工程化實踐記錄,需要的朋友參考下吧
    2017-11-11
  • 利用vue3自己實現(xiàn)計數(shù)功能組件封裝實例

    利用vue3自己實現(xiàn)計數(shù)功能組件封裝實例

    組件(Component) 是Vue.js最強(qiáng)大的功能之一,組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼,這篇文章主要給大家介紹了關(guān)于利用vue3自己實現(xiàn)計數(shù)功能組件封裝的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Vue使用lodop實現(xiàn)打印小結(jié)

    Vue使用lodop實現(xiàn)打印小結(jié)

    這篇文章主要介紹了Vue使用lodop打印小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue3的hooks用法總結(jié)

    vue3的hooks用法總結(jié)

    vue3中的hooks其實是函數(shù)的寫法,就是將文件的一些單獨(dú)功能的js代碼進(jìn)行抽離出來,放到單獨(dú)的js文件中,這篇文章主要介紹了一文掌握vue3中hooks的介紹及用法,需要的朋友可以參考下
    2023-04-04
  • 詳解vue身份認(rèn)證管理和租戶管理

    詳解vue身份認(rèn)證管理和租戶管理

    本篇開始功能模塊的開發(fā),首先完成ABP模板自帶的身份認(rèn)證管理模塊和租戶管理模塊。同樣的,參考ABP的Angular版本來做。
    2021-05-05
  • vue輪播圖插件vue-awesome-swiper

    vue輪播圖插件vue-awesome-swiper

    這篇文章主要為大家詳細(xì)介紹了vue輪播圖插件vue-awesome-swiper,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue3.x使用swiper實現(xiàn)卡片輪播

    vue3.x使用swiper實現(xiàn)卡片輪播

    這篇文章主要為大家詳細(xì)介紹了vue3.x使用swiper實現(xiàn)卡片輪播,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 使用vue-cli3+typescript的項目模板創(chuàng)建工程的教程

    使用vue-cli3+typescript的項目模板創(chuàng)建工程的教程

    這篇文章主要介紹了使用vue-cli3+typescript的項目模板創(chuàng)建工程,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • vue多功能渲染函數(shù)h()的使用和多種應(yīng)用場景

    vue多功能渲染函數(shù)h()的使用和多種應(yīng)用場景

    我們在vue項目里面用HTML標(biāo)簽構(gòu)建頁面時最終會被轉(zhuǎn)化成vnode,而h()是直接創(chuàng)建vnode,因此h()能以一種更靈活的方式在各種各樣情景下構(gòu)建組件的渲染邏輯,并且能帶來性能方式的提升,本文介紹如何使用和列出具體的應(yīng)用場景,需要的朋友可以參考下
    2024-08-08
  • Vue項目中ESlint規(guī)范示例代碼

    Vue項目中ESlint規(guī)范示例代碼

    這篇文章主要給大家介紹了關(guān)于Vue項目中ESlint規(guī)范的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論