Vue自定義表單驗(yàn)證(rule,value,callback)使用詳解
前言
- 最近在實(shí)際開發(fā)中遇到需要驗(yàn)證合同編號是否在數(shù)據(jù)庫已經(jīng)存在,自定義表單驗(yàn)證。
- 的表單驗(yàn)證大家都知道form綁定rules,prop綁定值與form.值一樣,必填,失去焦點(diǎn)觸發(fā) 提示信息。
- 今天我們講一講自定義驗(yàn)證規(guī)則具體使用場景和它的三個(gè)參數(shù)意思和使用
- 當(dāng)我們明白了 validator3個(gè)參數(shù)意思,我們就可以隨機(jī)組合我們自己的驗(yàn)證規(guī)則了
自定義驗(yàn)證規(guī)則
prop綁定值: [
{
validator: (rule, value, callback) => {
console.log('驗(yàn)證規(guī)則信息',rule);
console.log('輸入框的值',rule);
// callback()為空通過驗(yàn)證
// callback(new Error('未通過驗(yàn)證,拋出異常'))
console.log('是否通過驗(yàn)證規(guī)則',callback);
},
// 失去焦點(diǎn)觸發(fā)
trigger: "blur",
},
],使用場景-正則驗(yàn)證是否是手機(jī)號
test()方法:用于檢測字符串中指定的值,匹配成功返回true,匹配失敗返回false
prop綁定值: [
{ validator: (rule, value, callback) {
// 手機(jī)號正則表達(dá)式
const reg = /^[1][3,4,5,7,8][0-9]{9}$/
if (value == '' || value == undefined || value == null) {
callback()
} else {
// 正則失敗false,取反true拋出異常
if (!reg.test(value) && value != '') {
// 拋出異常,驗(yàn)證規(guī)則有錯(cuò)
callback(new Error('請輸入正確的電話號碼'))
} else {
callback()
}
}
// 輸入框值變化一次執(zhí)行一次
}, trigger: "change" },
],使用場景-判斷合同編號是否重復(fù)
prop綁定值: [
{ required: true, message: "請輸入合同編號", trigger: "blur" },
{
validator: async (rule, value, callback) => {
// 發(fā)請求
const res = await adrepetition(value);
console.log("合同編號", res
// 判斷狀態(tài)碼
if (res.code == 200) {
callback();
} else {
callback(new Error("合同編號重復(fù),請重新輸入"));
}
},
trigger: "blur",
},
],使用場景-多選判斷是否選中
checkListmain是data里面數(shù)據(jù),是多選v-model綁定的值,是一個(gè)數(shù)組
prop綁定值: [
{ required: true, message: "請輸入合同編號", trigger: "blur" },
{
validator: async (rule, value, callback) => {
// 發(fā)請求
const res = await adrepetition(value);
console.log("合同編號", res
// 判斷狀態(tài)碼
if (res.code == 200) {
callback();
} else {
callback(new Error("合同編號重復(fù),請重新輸入"));
}
},
trigger: "blur",
},
],總結(jié):
經(jīng)過這一趟流程下來相信你也對 Vue-自定義表單驗(yàn)證(rule,value,callback)詳細(xì)使用 有了初步的深刻印象,但在實(shí)際開發(fā)中我 們遇到的情況肯定是不一樣的,所以我們要理解它的原理,萬變不離其宗。
到此這篇關(guān)于Vue自定義表單驗(yàn)證(rule,value,callback)使用詳解的文章就介紹到這了,更多相關(guān)vue自定義表單驗(yàn)證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3+Elementplus實(shí)現(xiàn)面包屑功能
這篇文章主要為大家詳細(xì)介紹了Vue3如何結(jié)合Elementplus實(shí)現(xiàn)面包屑功能,文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2023-11-11
v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的幾種方式
在做項(xiàng)目的過程中,模版相同,可是不標(biāo)題和圖片不同,循環(huán)標(biāo)題我們知道可以用v-for循環(huán),可是該怎么引入本地圖片呢?下面這篇文章主要給大家介紹了v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的幾種方式,需要的朋友可以參考下2021-09-09
詳解基于vue-cli3快速發(fā)布一個(gè)fullpage組件
這篇文章主要介紹了詳解基于vue-cli3快速發(fā)布一個(gè)fullpage組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
Vue3中watchEffect和watch的基礎(chǔ)應(yīng)用詳解
watch是一個(gè)偵聽器,默認(rèn)是懶偵聽的,即僅在偵聽源發(fā)生變化時(shí)才執(zhí)行回調(diào)函數(shù),watchEffect是會自動(dòng)收集函數(shù)里面變量的響應(yīng)式依賴,本文主要來講講二者的區(qū)別,感興趣的可以了解一下2023-07-07
Vue實(shí)現(xiàn)戶籍管理系統(tǒng)戶籍信息的添加與刪除方式
這篇文章主要介紹了Vue實(shí)現(xiàn)戶籍管理系統(tǒng)戶籍信息的添加與刪除方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
多頁vue應(yīng)用的單頁面打包方法(內(nèi)含打包模式的應(yīng)用)
這篇文章主要介紹了多頁vue應(yīng)用的單頁面打包方法(內(nèi)含打包模式的應(yīng)用),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Vue3中defineEmits、defineProps?不用引入便直接用
這篇文章主要介紹了Vue3中defineEmits、defineProps?不用引入便直接用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09

