溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

小程序中如何實(shí)現(xiàn)表單驗(yàn)證

發(fā)布時(shí)間:2021-05-20 10:22:31 來源:億速云 閱讀:569 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章主要介紹小程序中如何實(shí)現(xiàn)表單驗(yàn)證,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

1. school.wxml:

<form bindsubmit='formSubmit'><view class="subInfo">
  <view class="subInfoItem clearfix">
    <text class="tag need">校區(qū)名稱</text>
    <input name='name' value='' placeholder='請輸入校區(qū)名稱' placeholder-class='placeholder'></input>
  </view>
  <view class="subInfoItem clearfix">
    <text class="tag">聯(lián)系電話</text>
    <input name='contactphone' value='' placeholder='請輸入聯(lián)系電話' placeholder-class='placeholder'></input>
  </view></view><view class='btnWrap'>
  <button class='saveBtn' form-type='submit'>保存</button></view></form>

2.school.js:

import WxValidate from '../utils/classes/WxValidate.js'var validate;

Page({    // 初始化表單校驗(yàn)
    initValidate(){        // 創(chuàng)建實(shí)例對(duì)象
        this.validate = new WxValidate({
            name: {
                required: true,
                maxlength: 20
            },
            contactphone: {
                tel: true
            }
        }, {
                name: {
                    required: '請輸入校區(qū)名稱!',
                    maxlength: '名稱不得超過20字!'
                },
                contactphone: {
                    tel: '電話格式不正確!'
                }
            })
    },
    data: {

    },
    onLoad: function (options) {
        this.initValidate()
    },
    formSubmit(e){        // 校驗(yàn)表單
        if (!this.validate.checkForm(e.detail.value)){            
        const error = this.validate.errorList[0];
            wx.showToast({
                title: `${error.msg} `,
                icon: 'none'
            })            
            return false
        }        // 保存操作...
    }
})

注:

WxValidate - 表單驗(yàn)證

插件介紹

該插件是參考 jQuery Validate 封裝的,為小程序表單提供了一套常用的驗(yàn)證規(guī)則,包括手機(jī)號(hào)碼、電子郵件驗(yàn)證等等,同時(shí)提供了添加自定義校驗(yàn)方法,讓表單驗(yàn)證變得更簡單。

參數(shù)說明

參數(shù)類型描述
rulesobject驗(yàn)證字段的規(guī)則
messagesobject驗(yàn)證字段的提示信息

內(nèi)置校驗(yàn)規(guī)則

序號(hào)規(guī)則描述
1required: true這是必填字段。
2email: true請輸入有效的電子郵件地址。
3tel: true請輸入11位的手機(jī)號(hào)碼。
4url: true請輸入有效的網(wǎng)址。
5date: true請輸入有效的日期。
6dateISO: true請輸入有效的日期(ISO),例如:2009-06-23,1998/01/22。
7number: true請輸入有效的數(shù)字。
8digits: true只能輸入數(shù)字。
9idcard: true請輸入18位的有效身份證。
10equalTo: 'field'輸入值必須和 field 相同。
11contains: 'ABC'輸入值必須包含 ABC。
12minlength: 5最少要輸入 5 個(gè)字符。
13maxlength: 10最多可以輸入 10 個(gè)字符。
14rangelength: [5, 10]請輸入長度在 5 到 10 之間的字符。
15min: 5請輸入不小于 5 的數(shù)值。
16max: 10請輸入不大于 10 的數(shù)值。
17range: [5, 10]請輸入范圍在 5 到 10 之間的數(shù)值。

常用實(shí)例方法

名稱返回類型描述
checkForm(e)boolean驗(yàn)證所有字段的規(guī)則,返回驗(yàn)證是否通過。
valid()boolean返回驗(yàn)證是否通過。
size()number返回錯(cuò)誤信息的個(gè)數(shù)。
validationErrors()array返回所有錯(cuò)誤信息。
addMethod(name, method, message)boolean添加自定義驗(yàn)證方法。

addMethod(name, method, message) - 添加自定義校驗(yàn)

第一個(gè)參數(shù) name 是添加的方法的名字。 第二個(gè)參數(shù) method 是一個(gè)函數(shù),接收三個(gè)參數(shù) (value, param) ,value 是元素的值,param 是參數(shù)。 第三個(gè)參數(shù) message 是自定義的錯(cuò)誤提示。

使用說明

// 驗(yàn)證字段的規(guī)則const rules = {
    email: {
        required: true,
        email: true,
    },
    tel: {
        required: true,
        tel: true,
    },
    idcard: {
        required: true,
        idcard: true,
    },
}// 驗(yàn)證字段的提示信息,若不傳則調(diào)用默認(rèn)的信息const messages = {
    email: {
        required: '請輸入郵箱',
        email: '請輸入正確的郵箱',
    },
    tel: {
        required: '請輸入手機(jī)號(hào)',
        tel: '請輸入正確的手機(jī)號(hào)',
    },
    idcard: {
        required: '請輸入身份證號(hào)碼',
        idcard: '請輸入正確的身份證號(hào)碼',
    },
}
// 創(chuàng)建實(shí)例對(duì)象
this.WxValidate = new WxValidate(rules, messages)
// 自定義驗(yàn)證規(guī)則
this.WxValidate.addMethod('assistance', (value, param) => {    
return this.WxValidate.optional(value) || (value.length >= 1 && value.length <= 2)
}, '請勾選1-2個(gè)敲碼助手')// 如果有個(gè)表單字段的 assistance,則在 rules 中寫assistance: {
    required: true,
    assistance: true,
},// 調(diào)用驗(yàn)證方法,傳入?yún)?shù) e 是 form 表單組件中的數(shù)據(jù)submitForm(e) {    
const params = e.detail.value

    console.log(params)    // 傳入表單數(shù)據(jù),調(diào)用驗(yàn)證方法
    if (!this.WxValidate.checkForm(e)) {        
    const error = this.WxValidate.errorList[0]        
    return false
    }
},

以上是“小程序中如何實(shí)現(xiàn)表單驗(yàn)證”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI