微信小程序表单验证功能完整实例


Posted in Javascript onDecember 01, 2017

本文实例讲述了微信小程序表单验证功能。分享给大家供大家参考,具体如下:

Wxml

<form bindsubmit="formSubmit" bindreset="formReset">
 <input name="name" class="{{whoClass=='name'?'placeholderClass':'inputClass'}}" placeholder="请填写您的姓名" type="text" confirm-type="next" focus="{{whoFocus=='name'?true:false}}" bindblur="nameBlurFocus" />
 <radio-group name="gender" bindchange="radioChange">
  <radio value="0" checked />女士
  <radio value="1" />先生
 </radio-group>
 <input name="mobile" class="{{whoClass=='mobile'?'placeholderClass':'inputClass'}}" type="number" maxlength="11" placeholder="请填写您的手机号" bindblur="mobileBlurFocus" focus="{{whoFocus=='mobile'?true:false}}" />
 <input name="company" class="{{whoClass=='company'?'placeholderClass':'inputClass'}}" placeholder="公司名称" type="text" confirm-type="next" focus="{{whoFocus=='company'?true:false}}" />
 <input name="client" class="{{whoClass=='client'?'placeholderClass':'inputClass'}}" placeholder="绑定客户" type="text" confirm-type="done" focus="{{whoFocus=='client'?true:false}}" />
 <button formType="submit">提交</button>
</form>
<loading hidden="{{submitHidden}}">
 正在提交...
</loading>

app.js

import wxValidate from 'utils/wxValidate'
App({
  wxValidate: (rules, messages) => new wxValidate(rules, messages)
})

news.js

var appInstance = getApp()
//表单验证初始化
onLoad: function () {
    this.WxValidate = appInstance.WxValidate(
      {
        name: {
          required: true,
          minlength: 2,
          maxlength: 10,
        },
        mobile: {
          required: true,
          tel: true,
        },
        company: {
          required: true,
          minlength: 2,
          maxlength: 100,
        },
        client: {
          required: true,
          minlength: 2,
          maxlength: 100,
        }
      }
      , {
        name: {
          required: '请填写您的姓名姓名',
        },
        mobile: {
          required: '请填写您的手机号',
        },
        company: {
          required: '请输入公司名称',
        },
        client: {
          required: '请输入绑定客户',
        }
      }
    )
  },
  //表单提交
   formSubmit: function (e) {
     //提交错误描述
    if (!this.WxValidate.checkForm(e)) {
      const error = this.WxValidate.errorList[0]
      // `${error.param} : ${error.msg} `
      wx.showToast({
        title: `${error.msg} `,
        image: '/pages/images/error.png',
        duration: 2000
      })
      return false
    }
    this.setData({ submitHidden: false })
    var that = this
    //提交
    wx.request({
      url: '',
      data: {
        Realname: e.detail.value.name,
        Gender: e.detail.value.gender,
        Mobile: e.detail.value.mobile,
        Company: e.detail.value.company,
        client: e.detail.value.client,
        Identity: appInstance.userState.identity
      },
      method: 'POST',
      success: function (requestRes) {
        that.setData({ submitHidden: true })
        appInstance.userState.status = 0
        wx.navigateBack({
          delta: 1
        })
      },
      fail: function () {
      },
      complete: function () {
      }
    })
  }

WxValidate.js 文件点击此处本站下载

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
JavaScript 学习 - 提高篇
Feb 02 Javascript
JS鼠标事件大全 推荐收藏
Nov 01 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 Javascript
通过npm引用的vue组件使用详解
Mar 02 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 Javascript
PHP自动加载autoload和命名空间的应用小结
Dec 01 #Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 #jQuery
javascript修改浏览器title方法 JS动态修改浏览器标题
Nov 30 #Javascript
vue组件发布到npm简单步骤
Nov 30 #Javascript
JS和JQuery实现雪花飘落效果
Nov 30 #jQuery
vue 添加vux的代码讲解
Nov 30 #Javascript
vue2.x+webpack快速搭建前端项目框架详解
Nov 30 #Javascript
You might like
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
python编写Logistic逻辑回归
2020/12/30 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
什么是python的id函数
2020/06/11 Python
施工资料员的岗位职责
2013/12/22 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
普通党员个人整改措施
2014/10/27 职场文书
2014年减负工作总结
2014/12/10 职场文书
教师考核评语大全
2014/12/31 职场文书
企业法人代表证明书
2015/06/18 职场文书
诚信教育主题班会
2015/08/13 职场文书
安全生产协议书
2016/03/22 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers