使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決
使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑
elementUI表單校驗(yàn)需要使用到自定義校驗(yàn)規(guī)則,官網(wǎng)提供的API函數(shù)validate入?yún)⒕鸵粋€(gè)回調(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)⒂腥齻€(gè),分別是rule,value和callback;其中rule是返回定義的規(guī)則對象,value是當(dāng)前校驗(yàn)控件的狀態(tài)值,callback是一個(gè)校驗(yàn)結(jié)果的回調(diào)方法。
直接上圖:

圖中指出存在的坑
為什么寫if(!value)return;這段代碼呢,那是因?yàn)椋?dāng)控件如果沒有輸入任何字符而觸發(fā)事件時(shí)的處理,開始以為直接return就可以了,結(jié)果引起校驗(yàn)的其他意想不到的異常?。。?!
后面查了相關(guān)資料才知道,這個(gè)自定義校驗(yàn)函數(shù)必須返回一個(gè)回調(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接收一個(gè)回調(diào)函數(shù),或返回 Promise
通俗點(diǎn)說,validate方法的參數(shù)可以是一個(gè)回調(diào)函數(shù),也可以為空(為空時(shí)返回Promise對象,沒啥用)
1.參數(shù)為回調(diào)函數(shù)時(shí),該回調(diào)函數(shù)有兩個(gè)參數(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值為一個(gè)空對象
}
});總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目實(shí)現(xiàn)自定義滑塊過渡效果
這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)自定義滑塊過渡效果,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Vue-router 類似Vuex實(shí)現(xiàn)組件化開發(fā)的示例
本篇文章主要介紹了Vue-router 類似Vuex實(shí)現(xiàn)組件化開發(fā)的示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09
Vue?監(jiān)聽視頻播放時(shí)長的實(shí)例代碼
本文介紹了如何通過源碼實(shí)現(xiàn)對視頻實(shí)時(shí)時(shí)長、播放時(shí)長和暫停時(shí)長的監(jiān)聽,詳細(xì)闡述了相關(guān)技術(shù)的應(yīng)用方法,幫助開發(fā)者更好地掌握視頻監(jiān)控技術(shù),提高用戶體驗(yàn)2024-10-10
webpack+vue.js實(shí)現(xiàn)組件化詳解
vue的開發(fā)體驗(yàn)還是比較愉悅的。首先文檔非常友好,所以上手會比較快。其次,配合webpack和vue-loader,每個(gè)頁面都是一個(gè).vue文件,寫起來很方便。所以很適合做組件化開發(fā),這篇文章我們就來一起看看webpack+vue.js如何實(shí)現(xiàn)組件化。2016-10-10
vue使用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

