微信小程序開發(fā)之表單驗證WxValidate使用
微信小程序的開發(fā)框架個人感覺大體上跟VUE是差不多的,但是他的表單組件沒有自帶的驗證功能,因此開發(fā)小程序的表單驗證時候一般有兩種方法,一是自己裸寫驗證規(guī)則,但是需要比較扎實的正則表達式基礎,一種是利用官方社區(qū)開發(fā)的WxValidate插件進行表單驗證。
WxValidate插件是參考 jQuery Validate 封裝的,為小程序表單提供了一套常用的驗證規(guī)則,包括手機號碼、電子郵件驗證等等,同時提供了添加自定義校驗方法,讓表單驗證變得更簡單。
首先插件的下載地址和官方文檔都在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所在目錄開始算起,如果這個地方的文件路徑寫錯,編譯就會報錯
之后就是注意在wxml文件中對表單組件的數(shù)據(jù)綁定,否則無論表單組件如何填寫,都無法驗證規(guī)則。
表單組件的綁定方法如下
//wxml頁面下
<form bindsubmit="formSubmit">
<view class="weui-cells__title">請?zhí)顚憘€人信息</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">手機號</view>
</view>
<view class="weui-cell__bd">
<input class="weui-input" name='phone' type='number' value='{{form.phone}}' placeholder="請輸入手機號" />
</view>
</view>
</view>
</form>
主要的方法就是在需要驗證的input框內加入value值的綁定,其他的組件同理
然后在js文件中加入form表單的綁定
//index.js
Page({
data: {
form: {
name: '',
phone: ''
}
}
})
然后就是最重要的驗證規(guī)則的書寫了
首先要在onLoad函數(shù)中加入驗證規(guī)則函數(shù)
// onLoad中有多個函數(shù)的寫法,onLoad函數(shù)內寫函數(shù)名,函數(shù)在onLoad外定義
onLoad() {
this.getuser()
this.initValidate()//驗證規(guī)則函數(shù)
}
//onLoad中只有一個函數(shù)的寫法
onLoad:function(){
rules:{}
messages:{}
}
此處需要注意的是一定要在js文件中onLoad驗證規(guī)則,否則編譯會報checkform is not a function
然后是驗證規(guī)則和報錯規(guī)則的代碼
//報錯
showModal(error) {
wx.showModal({
content: error.msg,
showCancel: false,
})
},
//驗證函數(shù)
initValidate() {
const rules = {
name: {
required: true,
minlength:2
},
phone:{
required:true,
tel:true
}
}
const messages = {
name: {
required: '請?zhí)顚懶彰?,
minlength:'請輸入正確的名稱'
},
phone:{
required:'請?zhí)顚懯謾C號',
tel:'請?zhí)顚懻_的手機號'
}
}
this.WxValidate = new WxValidate(rules, messages)
},
//調用驗證函數(shù)
formSubmit: function(e) {
console.log('form發(fā)生了submit事件,攜帶的數(shù)據(jù)為:', e.detail.value)
const params = e.detail.value
//校驗表單
if (!this.WxValidate.checkForm(params)) {
const error = this.WxValidate.errorList[0]
this.showModal(error)
return false
}
this.showModal({
msg: '提交成功'
})
}
這里我只寫了一點字段的驗證,官方文檔中還包含了很多字段的驗證規(guī)則,我就不一一寫出來了,這里需要注意的是在initValidate()中要實例化對象,至此表單驗證就已經(jīng)完成了
下面看看演示效果

大家還可以自行跑一下在上面下載的實例,里面有更多表單驗證的效果
到此這篇關于微信小程序開發(fā)之表單驗證WxValidate使用的文章就介紹到這了,更多相關小程序表單驗證內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript獲取css行間樣式,內連樣式和外鏈樣式的簡單方法
下面小編就為大家?guī)硪黄狫avaScript獲取css行間樣式,內連樣式和外鏈樣式的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
uniapp開發(fā)微信小程序主包太大和vendor.js過大無法打包問題解決
最近工作一直在uniapp開發(fā)小程序這一塊,相信很多開發(fā)者都遇到過代碼體積太大無法打包的問題,這篇文章主要給大家介紹了關于uniapp開發(fā)微信小程序主包太大和vendor.js過大無法打包問題的解決辦法,需要的朋友可以參考下2023-11-11
bootstrap如何讓dropdown menu按鈕式下拉框長度一致
bootstrap框架提供了下拉菜單組件(dropdown),即點擊一個元素或按鈕,觸發(fā)隱藏的列表顯示出來。下面通過本文給大家介紹bootstrap如何讓dropdown menu按鈕式下拉框長度一致,需要的朋友可以參考下2017-04-04
JavaScript實現(xiàn)手寫promise的示例代碼
promise?作為前端開發(fā)中常用的函數(shù),解決了?js?處理異步時回調地獄的問題,大家應該也不陌生了,今天來學習一下?promise?的實現(xiàn)過程吧2023-04-04
javascript cookie解碼函數(shù)(兼容ff)
javascript cookie解碼函數(shù)2008-03-03
ES6中Set和Map數(shù)據(jù)結構,Map與其它數(shù)據(jù)結構互相轉換操作實例詳解
這篇文章主要介紹了ES6中Set和Map數(shù)據(jù)結構,Map與其它數(shù)據(jù)結構互相轉換操作,結合實例形式詳細分析了ES6中的Set和Map數(shù)據(jù)結構的概念、原理、遍歷、去重等操作,以及Map與其它數(shù)據(jù)結構互相轉換操作,需要的朋友可以參考下2019-02-02

