小程序的表单验证之插件

小程序表单验证插件WxValidate
地址https://github.com/skyvow/wx-extend
在这里插入图片描述
文件路径:在这里插入图片描述
https://github.com/skyvow/wx-extend/blob/master/src/assets/plugins/wx-validate/WxValidate.js

下载WxValidate.js文件

在这里插入图片描述
验证方法:
https://github.com/skyvow/wx-extend/blob/master/docs/components/validate.md

我们使用使用的例子

// 验证字段的规则
const rules = {
    email: {
        required: true,
        email: true,
    },
    tel: {
        required: true,
        tel: true,
    },
    idcard: {
        required: true,
        idcard: true,
    },
}

// 验证字段的提示信息,若不传则调用默认的信息
const messages = {
    email: {
        required: '请输入邮箱',
        email: '请输入正确的邮箱',
    },
    tel: {
        required: '请输入手机号',
        tel: '请输入正确的手机号',
    },
    idcard: {
        required: '请输入身份证号码',
        idcard: '请输入正确的身份证号码',
    },
}

// 创建实例对象
this.WxValidate = new WxValidate(rules, messages)

// 自定义验证规则
this.WxValidate.addMethod('assistance', (value, param) => {
    return this.WxValidate.optional(value) || (value.length >= 1 && value.length <= 2)
}, '请勾选1-2个敲码助手')

// 如果有个表单字段的 assistance,则在 rules 中写
assistance: {
    required: true,
    assistance: true,
},

// 调用验证方法,传入参数 e 是 form 表单组件中的数据
submitForm(e) {
    const params = e.detail.value

    console.log(params)

    // 传入表单数据,调用验证方法
    if (!this.WxValidate.checkForm(e)) {
        const error = this.WxValidate.errorList[0]
        return false
    }
},

首先把这个文件放入目录
如下:在这里插入图片描述

我们在需要用插件的js文件中配置:

import WxValidate from "../../utils/WxValidate";

1.list.wxml配置
在这里插入图片描述
代码如下:

<form bindsubmit="submitForm">
    <view class="p">
        <text>邮箱:</text>
        <input type="text" name="email"></input>
    </view>
    <view class="p">
        <text>手机号:</text>
        <input type="text" name="tel"></input>
    </view>
    <view class="p">
        <text>身份证:</text>
        <input type="text" name="idcard"></input>
    </view>
    <button formType="submit">登录</button>
</form>

list.js配置
在这里插入图片描述
在这里插入图片描述
代码如下:

// pages/list/list.js
import WxValidate from "../../utils/WxValidate";
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 验证字段的规则
    const rules = {
      email: {
          required: true,
          email: true,
      },
      tel: {
          required: true,
          tel: true,
      },
      idcard: {
          required: true,
          idcard: true,
      },
    }

    // 验证字段的提示信息,若不传则调用默认的信息
    const messages = {
      email: {
          required: '请输入邮箱',
          email: '请输入正确的邮箱',
      },
      tel: {
          required: '请输入手机号',
          tel: '请输入正确的手机号',
      },
      idcard: {
          required: '请输入身份证号码',
          idcard: '请输入正确的身份证号码',
      },
}
// 创建实例对象
  this.WxValidate = new WxValidate(rules, messages)

  // 自定义验证规则
  this.WxValidate.addMethod('assistance', (value, param) => {
    return this.WxValidate.optional(value) || (value.length >= 1 && value.length <= 2)
  }, '请勾选1-2个敲码助手')


  // 如果有个表单字段的 assistance,则在 rules 中写

  // 调用验证方法,传入参数 e 是 form 表单组件中的数据
  },
    assistance: {
      required: true,
      assistance: true,
    },
  submitForm(e) {
    const params = e.detail.value
  
    console.log(params)
  
    // 传入表单数据,调用验证方法
    if (!this.WxValidate.checkForm(params)) {
        // const error = this.WxValidate.errorList[0]
        const error = this.WxValidate.errorList

        console.log(error)
        return false
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

样式代码:

/* pages/list/list.wxss */
.p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 20rpx;
}

.p input {
  border: 1rpx gray solid;
  width: 400rpx;
}

运行结果:在这里插入图片描述
msg为返回的错误信息在这里插入图片描述
手机号输入错误时

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序可以通过编写表单验证规则和使用第三方表单验证插件来实现表单验证。以下是两种实现方式: 1.编写表单验证规则 在util.js中编写表单验证规则,例如: ```javascript const regExp = { phone: /^1[3456789]\d{9}$/, email: /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/, idCard: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, password: /^[a-zA-Z]\w{5,17}$/, // 更多规则... } export default regExp ``` 然后在需要验证的页面中引入util.js,并使用正则表达式进行验证。 2.使用第三方表单验证插件 可以使用第三方表单验证插件WxValidate来实现表单验证。具体步骤如下: 1)下载WxValidate插件,并将其放置在项目的utils文件夹下。 2)在需要验证的页面中引入WxValidate插件,并创建一个WxValidate实例。 ```javascript import WxValidate from '../../utils/WxValidate.js' Page({ data: { form: { name: '', phone: '', email: '', // 更多表单项... } }, onLoad() { this.initValidate() }, // 创建WxValidate实例 initValidate() { const rules = { name: { required: true, minlength: 2 }, phone: { required: true, tel: true }, email: { required: true, email: true }, // 更多规则... } const messages = { name: { required: '请填写姓名', minlength: '姓名至少为2个字符' }, phone: { required: '请填写手机号码', tel: '请填写正确的手机号码' }, email: { required: '请填写邮箱', email: '请填写正确的邮箱' }, // 更多提示信息... } this.WxValidate = new WxValidate(rules, messages) }, // 表单提交 formSubmit(e) { const params = e.detail.value if (!this.WxValidate.checkForm(params)) { const error = this.WxValidate.errorList[0] wx.showToast({ title: `${error.msg}`, icon: 'none' }) return false } // 表单验证通过,进行提交操作 // ... } }) ``` 以上是两种小程序实现表单验证的方式,可以根据具体需求选择合适的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值