Vue自定義表單驗(yàn)證(rule,value,callback)使用詳解
前言
- 最近在實(shí)際開發(fā)中遇到需要驗(yàn)證合同編號(hào)是否在數(shù)據(jù)庫(kù)已經(jīng)存在,自定義表單驗(yàn)證。
- 的表單驗(yàn)證大家都知道form綁定rules,prop綁定值與form.值一樣,必填,失去焦點(diǎn)觸發(fā) 提示信息。
- 今天我們講一講自定義驗(yàn)證規(guī)則具體使用場(chǎng)景和它的三個(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", }, ],
使用場(chǎng)景-正則驗(yàn)證是否是手機(jī)號(hào)
test()方法:用于檢測(cè)字符串中指定的值,匹配成功返回true,匹配失敗返回false
prop綁定值: [ { validator: (rule, value, callback) { // 手機(jī)號(hào)正則表達(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('請(qǐng)輸入正確的電話號(hào)碼')) } else { callback() } } // 輸入框值變化一次執(zhí)行一次 }, trigger: "change" }, ],
使用場(chǎng)景-判斷合同編號(hào)是否重復(fù)
prop綁定值: [ { required: true, message: "請(qǐng)輸入合同編號(hào)", trigger: "blur" }, { validator: async (rule, value, callback) => { // 發(fā)請(qǐng)求 const res = await adrepetition(value); console.log("合同編號(hào)", res // 判斷狀態(tài)碼 if (res.code == 200) { callback(); } else { callback(new Error("合同編號(hào)重復(fù),請(qǐng)重新輸入")); } }, trigger: "blur", }, ],
使用場(chǎng)景-多選判斷是否選中
checkListmain是data里面數(shù)據(jù),是多選v-model綁定的值,是一個(gè)數(shù)組
prop綁定值: [ { required: true, message: "請(qǐng)輸入合同編號(hào)", trigger: "blur" }, { validator: async (rule, value, callback) => { // 發(fā)請(qǐng)求 const res = await adrepetition(value); console.log("合同編號(hào)", res // 判斷狀態(tài)碼 if (res.code == 200) { callback(); } else { callback(new Error("合同編號(hào)重復(fù),請(qǐng)重新輸入")); } }, trigger: "blur", }, ],
總結(jié):
經(jīng)過這一趟流程下來相信你也對(duì) Vue-自定義表單驗(yàn)證(rule,value,callback)詳細(xì)使用 有了初步的深刻印象,但在實(shí)際開發(fā)中我 們遇到的情況肯定是不一樣的,所以我們要理解它的原理,萬變不離其宗。
到此這篇關(guān)于Vue自定義表單驗(yàn)證(rule,value,callback)使用詳解的文章就介紹到這了,更多相關(guān)vue自定義表單驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用mint-ui開發(fā)項(xiàng)目的一些心得(分享)
下面小編就為大家?guī)硪黄褂胢int-ui開發(fā)項(xiàng)目的一些心得(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09vue路由傳參方式的方式總結(jié)及獲取參數(shù)詳解
vue 路由傳參的使用場(chǎng)景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時(shí),攜帶參數(shù)跳轉(zhuǎn),下面這篇文章主要給大家介紹了關(guān)于vue路由傳參方式的方式總結(jié)及獲取參數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07vue自定義一個(gè)v-model的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue自定義一個(gè)v-model的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06vue實(shí)現(xiàn)一個(gè)滾動(dòng)條樣式
滾動(dòng)條能夠給用戶帶來極好的體驗(yàn)效果,今天通過本文給大家分享vue實(shí)現(xiàn)一個(gè)滾動(dòng)條樣式,代碼簡(jiǎn)單易懂,需要的朋友參考下吧2021-07-07