使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決
使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑
elementUI表單校驗(yàn)需要使用到自定義校驗(yàn)規(guī)則,官網(wǎng)提供的API函數(shù)validate入?yún)⒕鸵粋€回調(diào)函數(shù),函數(shù)參數(shù)是返回校驗(yàn)結(jié)果(true/false)和校驗(yàn)字段名稱prop,詳見elementUI官網(wǎng)。
現(xiàn)在要講的是自定義校驗(yàn)規(guī)則函數(shù),即規(guī)則對象中的屬性validator。
自定義函數(shù)的入?yún)⒂腥齻€,分別是rule,value和callback;其中rule是返回定義的規(guī)則對象,value是當(dāng)前校驗(yàn)控件的狀態(tài)值,callback是一個校驗(yàn)結(jié)果的回調(diào)方法。
直接上圖:
圖中指出存在的坑
為什么寫if(!value)return;這段代碼呢,那是因?yàn)椋?dāng)控件如果沒有輸入任何字符而觸發(fā)事件時的處理,開始以為直接return就可以了,結(jié)果引起校驗(yàn)的其他意想不到的異常?。。。?/p>
后面查了相關(guān)資料才知道,這個自定義校驗(yàn)函數(shù)必須返回一個回調(diào)函數(shù)“callback”!! 即圖中下邊的 callback();
返回callback的入?yún)榭沾硇r?yàn)通過規(guī)則,返回含new Error(‘自定義提示’)入?yún)⒋硇r?yàn)不通過規(guī)則。
elementUI表單驗(yàn)證validate
elementUI的form組件里對validate給出的解釋是:validate接收一個回調(diào)函數(shù),或返回 Promise
通俗點(diǎn)說,validate方法的參數(shù)可以是一個回調(diào)函數(shù),也可以為空(為空時返回Promise對象,沒啥用)
1.參數(shù)為回調(diào)函數(shù)時,該回調(diào)函數(shù)有兩個參數(shù),分別是是否校驗(yàn)成功和未通過校驗(yàn)字段,該回調(diào)函數(shù)會在校驗(yàn)結(jié)束后被調(diào)用
表單.validate(回調(diào)函數(shù)(是否校驗(yàn)成功,未通過校驗(yàn)的字段){ if(是否校驗(yàn)成功){// 校驗(yàn)成功 //成功后的操作 }else{ // 校驗(yàn)失敗 // 校驗(yàn)失敗后的操作 } }) //非空校驗(yàn)例子 formRef.value.validate(function (valid, msg) { if (valid) { console.log(valid, msg); //valid值為false //msg值為對象 a: {message: '該字段不能為空', fieldValue: null, field: 'a'} } else { console.log(valid, msg); //valid值為true //msg值為一個空對象 } });
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目實(shí)現(xiàn)自定義滑塊過渡效果
這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)自定義滑塊過渡效果,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07Vue-router 類似Vuex實(shí)現(xiàn)組件化開發(fā)的示例
本篇文章主要介紹了Vue-router 類似Vuex實(shí)現(xiàn)組件化開發(fā)的示例,具有一定的參考價值,有興趣的可以了解一下2017-09-09webpack+vue.js實(shí)現(xiàn)組件化詳解
vue的開發(fā)體驗(yàn)還是比較愉悅的。首先文檔非常友好,所以上手會比較快。其次,配合webpack和vue-loader,每個頁面都是一個.vue文件,寫起來很方便。所以很適合做組件化開發(fā),這篇文章我們就來一起看看webpack+vue.js如何實(shí)現(xiàn)組件化。2016-10-10vue使用html2canvas和jspdf將html轉(zhuǎn)成pdf
在前端開發(fā)中, html轉(zhuǎn)pdf是最常見的需求,下面這篇文章主要給大家介紹了關(guān)于vue如何使用html2canvas和jspdf將html轉(zhuǎn)成pdf的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03