vue 如何實現(xiàn)表單校驗
一、安裝并使用
首先,在你的vue項目中進(jìn)行安裝:
npm install --save vue-input-check
安裝完成以后引入并注冊:
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>
如你所見,上述的v-input-check就是我們對每個輸入框定義規(guī)則的地方,值是一個數(shù)組,第一個值就是輸入框的v-model,第二個值是一個字符串,語法如下:
validate-express="val1:param1:param2|val2|valu3:param1"
不同的規(guī)則使用|分割,需要傳遞參數(shù)的規(guī)則的參數(shù)通過:分割。我們來看幾個例子:
v-input-check='[key,"required|maxLength:10|regexp:^\\d{1,5}$"]'
v-input-check='[key,"required"]'
目前可選的內(nèi)置規(guī)則如下:
required:boolean:表示必輸,有一個可選參數(shù),表示是否必輸,默認(rèn)true
maxLength:num:最大長度
minLength:num:最小長度
regexp:str:正則表達(dá)式
二、獲取校驗結(jié)果
頁面的規(guī)則定義好了以后,你有兩中方式獲取校驗的結(jié)果。
1.JS的方式
直接使用下列方法啟動檢查即可:
this.$validateCheck(formnode, callback, errorback);
此對象包含三個參數(shù):
-
formnode:需要校驗的表單結(jié)點(diǎn),必輸 -
callback:表單合法回調(diào),可選 -
errorback:表單非法回調(diào),可選
此外,錯誤回調(diào)有一個形參,數(shù)據(jù)格式為:
{
"$el":錯誤的輸入框結(jié)點(diǎn)
"$error":當(dāng)前輸入框的第一個錯誤提示信息
}
2.HTML的方式
提供這種方式的目的是為了可以在頁面實時反饋當(dāng)前表單的輸入情況。
首先,在表單上,你可以通過判斷class包含v-valid或者v-invalid來判斷表單是否合法。
同樣的,添加指令
v-input-check的地方同樣可以這樣判斷該處是否合法,而對于更具體的錯誤細(xì)節(jié),比如必輸非法,class就會像這樣v-invalid-required v-invalid。
三、自定義校驗規(guī)則
在大部分情況下,我們還可能需要添加新的校驗規(guī)則,畢竟默認(rèn)的往往不足以滿足所有業(yè)務(wù)情況:
Vue.use(inputCheck, {
// 自定義校驗規(guī)則
validate: [{
// 規(guī)則的名稱
name: "XXX",
// 校驗方法,返回true表示合法,false表示非法
// 需要注意的是,這個函數(shù)除了el和val一定存在外,余下的參數(shù)是使用的時候通過```:```分割傳遞的,可以有任意多個
// 比如:``` required:true|phone:parm1:param2 ```
test: function (el, val, ...) {
return true|false;
},
// 非法提示信息,應(yīng)該返回一個字符串
message: function (el, name) {
return "XXX";
}
},
// 校驗規(guī)則可以有多條
......
]
});
到此這篇關(guān)于vue 如何實現(xiàn)表單校驗的文章就介紹到這了,更多相關(guān)vue 實現(xiàn)表單校驗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue增加強(qiáng)緩存和版本號的實現(xiàn)方法
這篇文章主要介紹了vue增加強(qiáng)緩存和版本號的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
vue如何使用js對圖片進(jìn)行點(diǎn)擊標(biāo)注圓點(diǎn)并記錄它的坐標(biāo)
這篇文章主要介紹了vue如何使用js對圖片進(jìn)行點(diǎn)擊標(biāo)注圓點(diǎn)并記錄它的坐標(biāo),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
關(guān)于Vue Router中路由守衛(wèi)的應(yīng)用及在全局導(dǎo)航守衛(wèi)中檢查元字段的方法
這篇文章主要介紹了關(guān)于Vue Router中路由守衛(wèi)的應(yīng)用及在全局導(dǎo)航守衛(wèi)中檢查元字段的方法,實現(xiàn)方法有兩種,本文通過實例代碼對每種方法介紹的很詳細(xì),需要的朋友參考下2018-12-12
Vue組件化(ref,props,?mixin,.插件)詳解
這篇文章主要介紹了Vue組件化(ref,?props,?mixin,?插件)的相關(guān)知識,包括ref屬性,props配置項及mixin混入的方式,本文通過示例代碼多種方式相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
vue3使用vis繪制甘特圖制作timeline可拖動時間軸及時間軸中文化(推薦)
這篇文章主要介紹了vue3使用vis繪制甘特圖制作timeline可拖動時間軸,時間軸中文化,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
Vue3 SFC 和 TSX 方式自定義組件實現(xiàn) v-model的詳細(xì)
v-model 是 vue3 中的一個內(nèi)置指令,很多表單元素都可以使用這個屬性,如 input、checkbox 等,咱可以在自定義組件中實現(xiàn) v-model,這篇文章主要介紹了Vue3 SFC 和 TSX 方式自定義組件實現(xiàn) v-model,需要的朋友可以參考下2022-10-10

