微信小程序開發(fā)之表單驗證WxValidate使用
微信小程序的開發(fā)框架個人感覺大體上跟VUE是差不多的,但是他的表單組件沒有自帶的驗證功能,因此開發(fā)小程序的表單驗證時候一般有兩種方法,一是自己裸寫驗證規(guī)則,但是需要比較扎實的正則表達(dá)式基礎(chǔ),一種是利用官方社區(qū)開發(fā)的WxValidate插件進(jìn)行表單驗證。
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框內(nèi)加入value值的綁定,其他的組件同理
然后在js文件中加入form表單的綁定
//index.js Page({ data: { form: { name: '', phone: '' } } })
然后就是最重要的驗證規(guī)則的書寫了
首先要在onLoad函數(shù)中加入驗證規(guī)則函數(shù)
// onLoad中有多個函數(shù)的寫法,onLoad函數(shù)內(nèi)寫函數(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) }, //調(diào)用驗證函數(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)完成了
下面看看演示效果
大家還可以自行跑一下在上面下載的實例,里面有更多表單驗證的效果
到此這篇關(guān)于微信小程序開發(fā)之表單驗證WxValidate使用的文章就介紹到這了,更多相關(guān)小程序表單驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Js動態(tài)設(shè)置rem來實現(xiàn)移動端字體的自適應(yīng)代碼
這篇文章主要介紹了Js動態(tài)設(shè)置rem來實現(xiàn)移動端字體的自適應(yīng)代碼,代碼簡單易懂非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-10-10解決微信小程序調(diào)用moveToLocation失效問題【超簡單】
這篇文章主要介紹了解決微信小程序調(diào)用moveToLocation失效問題,解決方法超級簡單,需要的朋友可以參考下2019-04-04javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別)
這篇文章主要介紹了javascript嚴(yán)格模式詳解(含嚴(yán)格模式與非嚴(yán)格模式的區(qū)別),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11