微信小程序開發(fā)之表單驗(yàn)證WxValidate使用
微信小程序的開發(fā)框架個(gè)人感覺大體上跟VUE是差不多的,但是他的表單組件沒有自帶的驗(yàn)證功能,因此開發(fā)小程序的表單驗(yàn)證時(shí)候一般有兩種方法,一是自己裸寫驗(yàn)證規(guī)則,但是需要比較扎實(shí)的正則表達(dá)式基礎(chǔ),一種是利用官方社區(qū)開發(fā)的WxValidate插件進(jìn)行表單驗(yàn)證。
WxValidate插件是參考 jQuery Validate 封裝的,為小程序表單提供了一套常用的驗(yàn)證規(guī)則,包括手機(jī)號碼、電子郵件驗(yàn)證等等,同時(shí)提供了添加自定義校驗(yàn)方法,讓表單驗(yàn)證變得更簡單。
首先插件的下載地址和官方文檔都在WxValidate下載地址和文檔地址
具體的WxValidate.js文件的位置在wx-extend/src/assets/plugins/wx-validate/WxValidate.js
首先引入的方法就是將插件文件拷貝到你所需要的文件目錄下

之后可以采用局部引用的方式將插件引入到你所需要的頁面的JS文件里,具體操作如下
//index.js頁面下
import WxValidate from '../../utils/WxValidate.js'
const app = getApp()
Page({
data: {
form: {
name: '',
phone: ''
}
}
})
這里需要注意的是文件路徑的寫法
/是從根目錄開始算起 ./是從引入文件的目錄文件開始,此例子中就是index.js所在目錄開始算起 ../就是從引入文件的父級目錄開始算起,此例子中index文件夾目錄,而../../就是從pages所在目錄開始算起,如果這個(gè)地方的文件路徑寫錯(cuò),編譯就會(huì)報(bào)錯(cuò)
之后就是注意在wxml文件中對表單組件的數(shù)據(jù)綁定,否則無論表單組件如何填寫,都無法驗(yàn)證規(guī)則。
表單組件的綁定方法如下
//wxml頁面下
<form bindsubmit="formSubmit">
<view class="weui-cells__title">請?zhí)顚憘€(gè)人信息</view>
<view class="weui-cells weui-cells_after-title">
<view class="weui-cell weui-cell_input">
<view class="weui-cell__hd">
<view class="weui-label">姓名</view>
</view>
<view class="weui-cell__bd">
<input class="weui-input" name='name' value='{{form.name}}' placeholder="請輸入姓名" />
</view>
</view>
<view class="weui-cell weui-cell_input weui-cell_vcode">
<view class="weui-cell__hd">
<view class="weui-label">手機(jī)號</view>
</view>
<view class="weui-cell__bd">
<input class="weui-input" name='phone' type='number' value='{{form.phone}}' placeholder="請輸入手機(jī)號" />
</view>
</view>
</view>
</form>
主要的方法就是在需要驗(yàn)證的input框內(nèi)加入value值的綁定,其他的組件同理
然后在js文件中加入form表單的綁定
//index.js
Page({
data: {
form: {
name: '',
phone: ''
}
}
})
然后就是最重要的驗(yàn)證規(guī)則的書寫了
首先要在onLoad函數(shù)中加入驗(yàn)證規(guī)則函數(shù)
// onLoad中有多個(gè)函數(shù)的寫法,onLoad函數(shù)內(nèi)寫函數(shù)名,函數(shù)在onLoad外定義
onLoad() {
this.getuser()
this.initValidate()//驗(yàn)證規(guī)則函數(shù)
}
//onLoad中只有一個(gè)函數(shù)的寫法
onLoad:function(){
rules:{}
messages:{}
}
此處需要注意的是一定要在js文件中onLoad驗(yàn)證規(guī)則,否則編譯會(huì)報(bào)checkform is not a function
然后是驗(yàn)證規(guī)則和報(bào)錯(cuò)規(guī)則的代碼
//報(bào)錯(cuò)
showModal(error) {
wx.showModal({
content: error.msg,
showCancel: false,
})
},
//驗(yàn)證函數(shù)
initValidate() {
const rules = {
name: {
required: true,
minlength:2
},
phone:{
required:true,
tel:true
}
}
const messages = {
name: {
required: '請?zhí)顚懶彰?,
minlength:'請輸入正確的名稱'
},
phone:{
required:'請?zhí)顚懯謾C(jī)號',
tel:'請?zhí)顚懻_的手機(jī)號'
}
}
this.WxValidate = new WxValidate(rules, messages)
},
//調(diào)用驗(yàn)證函數(shù)
formSubmit: function(e) {
console.log('form發(fā)生了submit事件,攜帶的數(shù)據(jù)為:', e.detail.value)
const params = e.detail.value
//校驗(yàn)表單
if (!this.WxValidate.checkForm(params)) {
const error = this.WxValidate.errorList[0]
this.showModal(error)
return false
}
this.showModal({
msg: '提交成功'
})
}
這里我只寫了一點(diǎn)字段的驗(yàn)證,官方文檔中還包含了很多字段的驗(yàn)證規(guī)則,我就不一一寫出來了,這里需要注意的是在initValidate()中要實(shí)例化對象,至此表單驗(yàn)證就已經(jīng)完成了
下面看看演示效果

大家還可以自行跑一下在上面下載的實(shí)例,里面有更多表單驗(yàn)證的效果
到此這篇關(guān)于微信小程序開發(fā)之表單驗(yàn)證WxValidate使用的文章就介紹到這了,更多相關(guān)小程序表單驗(yàn)證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼
這篇文章主要介紹了Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼,代碼簡單易懂非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
解決微信小程序調(diào)用moveToLocation失效問題【超簡單】
這篇文章主要介紹了解決微信小程序調(diào)用moveToLocation失效問題,解決方法超級簡單,需要的朋友可以參考下2019-04-04
javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別)
這篇文章主要介紹了javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
當(dāng)json鍵為數(shù)字時(shí)的取值方法解析
對于數(shù)字鍵名或者非正常變量字符(比如有空格),必須使用 aa[x]的方式2013-11-11

