vue 如何實(shí)現(xiàn)表單校驗(yàn)
一、安裝并使用
首先,在你的vue項(xiàng)目中進(jìn)行安裝:
npm install --save vue-input-check
安裝完成以后引入并注冊(cè):
import inputCheck from 'vue-input-check'; // 安裝 Vue.use(inputCheck);
然后,我們就可以在表單中使用了:
<form autocomplete="off" novalidate> <input v-model='key' name='輸入框名稱' v-input-check='[key,"validate-express"]'/> <!-- 可以有任意多的輸入框 --> </form>
如你所見(jiàn),上述的v-input-check
就是我們對(duì)每個(gè)輸入框定義規(guī)則的地方,值是一個(gè)數(shù)組,第一個(gè)值就是輸入框的v-model
,第二個(gè)值是一個(gè)字符串,語(yǔ)法如下:
validate-express="val1:param1:param2|val2|valu3:param1"
不同的規(guī)則使用|分割,需要傳遞參數(shù)的規(guī)則的參數(shù)通過(guò):分割。我們來(lái)看幾個(gè)例子:
v-input-check='[key,"required|maxLength:10|regexp:^\\d{1,5}$"]' v-input-check='[key,"required"]'
目前可選的內(nèi)置規(guī)則如下:
required:boolean:
表示必輸,有一個(gè)可選參數(shù),表示是否必輸,默認(rèn)true
maxLength:num:
最大長(zhǎng)度
minLength:num:
最小長(zhǎng)度
regexp:str:
正則表達(dá)式
二、獲取校驗(yàn)結(jié)果
頁(yè)面的規(guī)則定義好了以后,你有兩中方式獲取校驗(yàn)的結(jié)果。
1.JS的方式
直接使用下列方法啟動(dòng)檢查即可:
this.$validateCheck(formnode, callback, errorback);
此對(duì)象包含三個(gè)參數(shù):
-
formnode
:需要校驗(yàn)的表單結(jié)點(diǎn),必輸 -
callback
:表單合法回調(diào),可選 -
errorback
:表單非法回調(diào),可選
此外,錯(cuò)誤回調(diào)有一個(gè)形參,數(shù)據(jù)格式為:
{ "$el":錯(cuò)誤的輸入框結(jié)點(diǎn) "$error":當(dāng)前輸入框的第一個(gè)錯(cuò)誤提示信息 }
2.HTML的方式
提供這種方式的目的是為了可以在頁(yè)面實(shí)時(shí)反饋當(dāng)前表單的輸入情況。
首先,在表單上,你可以通過(guò)判斷class
包含v-valid
或者v-invalid
來(lái)判斷表單是否合法。
同樣的,添加指令
v-input-check
的地方同樣可以這樣判斷該處是否合法,而對(duì)于更具體的錯(cuò)誤細(xì)節(jié),比如必輸非法,class就會(huì)像這樣v-invalid-required v-invalid
。
三、自定義校驗(yàn)規(guī)則
在大部分情況下,我們還可能需要添加新的校驗(yàn)規(guī)則,畢竟默認(rèn)的往往不足以滿足所有業(yè)務(wù)情況:
Vue.use(inputCheck, { // 自定義校驗(yàn)規(guī)則 validate: [{ // 規(guī)則的名稱 name: "XXX", // 校驗(yàn)方法,返回true表示合法,false表示非法 // 需要注意的是,這個(gè)函數(shù)除了el和val一定存在外,余下的參數(shù)是使用的時(shí)候通過(guò)```:```分割傳遞的,可以有任意多個(gè) // 比如:``` required:true|phone:parm1:param2 ``` test: function (el, val, ...) { return true|false; }, // 非法提示信息,應(yīng)該返回一個(gè)字符串 message: function (el, name) { return "XXX"; } }, // 校驗(yàn)規(guī)則可以有多條 ...... ] });
到此這篇關(guān)于vue 如何實(shí)現(xiàn)表單校驗(yàn)的文章就介紹到這了,更多相關(guān)vue 實(shí)現(xiàn)表單校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue.js綁定HTML class數(shù)組語(yǔ)法錯(cuò)誤的原因分析
Vue.js綁定HTML class數(shù)組語(yǔ)法錯(cuò)誤有哪些原因?qū)е碌哪?,該如何解決呢?下面小編給大家分享Vue.js綁定HTML class數(shù)組語(yǔ)法錯(cuò)誤的原因分析,感興趣的朋友一起看看吧2016-10-10Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn)3
這篇文章主要為大家詳細(xì)介紹了Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn),教大家如何在某個(gè)對(duì)象中,新增某個(gè)屬性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Vue開(kāi)發(fā)環(huán)境跨域訪問(wèn)問(wèn)題
這篇文章主要介紹了Vue開(kāi)發(fā)環(huán)境跨域訪問(wèn)問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Vue實(shí)現(xiàn)添加數(shù)據(jù)到二維數(shù)組并顯示
這篇文章主要介紹了Vue實(shí)現(xiàn)添加數(shù)據(jù)到二維數(shù)組并顯示方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載
本篇文章主要介紹了vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09Vue?編程式路由導(dǎo)航的實(shí)現(xiàn)示例
本文主要介紹了Vue?編程式路由導(dǎo)航2022-04-04