• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序 - 表单验证插件WxValidate使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Github地址:WxValidate

 

 

 

 

1. 拷贝至util目录

 

2.项目引入

 

3.查看wxml匹配规则,通过name

 

 

 4.在js配置规则

 

  1 import WxValidate from \'../../../utils/WxValidate\';
  2 
  3 Page({
  4 
  5   /**
  6    * 页面的初始数据
  7    */
  8   data: {},
  9 
 10   onLoad: function(options) {
 11 
 12     /**
 13      * 4-1(先初始化表单)
 14      */
 15     this.initValidate();
 16   },
 17 
 18 
 19 
 20   showModal(error) {
 21     wx.showModal({
 22       content: error.msg,
 23       showCancel: false,
 24     })
 25   },
 26 
 27 
 28   submitForm(e) {
 29     /**
 30      * 4-3(表单提交校验)
 31      */
 32     const params = e.detail.value
 33     if (!this.WxValidate.checkForm(params)) {
 34       const error = this.WxValidate.errorList[0]
 35       this.showModal(error)
 36       return false
 37     }
 38     /**
 39      * 这里添写验证成功以后的逻辑
 40      * 
 41      */
 42     //验证通过以后->
 43     this.submitInfo(params);
 44   },
 45 
 46   /**
 47    * 表单-提交
 48    */
 49   submitInfo(params) {
 50     // form提交
 51     let form = params;
 52     console.log(\'将要提交的表单信息:\', form);
 53 
 54     wx.showToast({
 55       title: \'提交成功!!!!\',
 56     })
 57   },
 58 
 59   /**
 60    * 表单-验证字段
 61    */
 62   initValidate() {
 63 
 64     /**
 65      * 4-2(配置规则)
 66      */
 67     const rules = {
 68       name: {
 69         required: true,
 70         rangelength: [2, 4]
 71       },
 72       idcard: {
 73         required: true,
 74         idcard: true,
 75       },
 76       tel: {
 77         required: true,
 78         tel: true,
 79       },
 80       // 配置false可关闭验证
 81       regcode: {
 82         required: false,
 83         minlength: 6
 84       },
 85       assistance: {
 86         required: true,
 87         assistance: true,
 88       },
 89     }
 90     // 验证字段的提示信息,若不传则调用默认的信息
 91     const messages = {
 92       name: {
 93         required: \'请输入姓名\',
 94         rangelength: \'请输入2~4个汉字个汉字\'
 95       },
 96       tel: {
 97         required: \'请输入11位手机号码\',
 98         tel: \'请输入正确的手机号码\',
 99       },
100       idcard: {
101         required: \'请输入身份证号码\',
102         idcard: \'请输入正确的身份证号码\',
103       },
104       regcode: {
105         required: \'请输入验证码\',
106         minlength: \'请输入正确的验证码\'
107       },
108       assistance: {
109         required: \'请勾选 《顺风男服务协议》\'
110       },
111     }
112     // 创建实例对象
113     this.WxValidate = new WxValidate(rules, messages)
114     /**
115      * 也可以自定义验证规则
116      */
117     this.WxValidate.addMethod(\'assistance\', (value, param) => {
118       return this.WxValidate.optional(value) || (value.length >= 1 && value.length <= 2)
119     }, \'请勾选 《顺风男服务协议》\')
120   }
121 });

 

 

5.wxml

 1 <form bindsubmit=\'submitForm\'>
 2   <view class="container">
 3     <view class=\'container-info\'>
 4       <view class="man-form-info">
 5         <view class=\'name\'>姓名
 6           <input placeholder=\'请输入姓名\' name="name"></input>
 7         </view>
 8         <view class=\'idcard\'>
 9           身份证号码
10           <input maxlength=\'18\' placeholder=\'请输入身份证号码\' type=\'idcard\' name="idcard"></input>
11         </view>
12 
13         <view class=\'phone\'>
14           手机号码
15           <input maxlength=\'11\' placeholder=\'请输入手机号码\' type=\'number\' bindinput="phoneValue" name="tel"></input>
16         </view>
17       </view>
18     </view>
19 
20     <view class=\'read-man-pact\'>
21       <checkbox-group name="assistance">
22         <checkbox></checkbox>
23         <navigator class=\'pact\'>阅读《顺风男服务协议》</navigator>
24       </checkbox-group>
25     </view>
26 
27     <view class=\'submit-form-info\'>
28       <button form-type=\'submit\'>提交</button>
29     </view>
30 
31   </view>
32 </form>

 

wxss

  1 page {
  2   font-size: 30rpx;
  3 }
  4 
  5 input:hover {
  6   border-bottom: 2px solid #ddd;
  7 }
  8 
  9 button:active {
 10   opacity: 0.7;
 11 }
 12 
 13 .container-info {
 14   padding: 5%;
 15 }
 16 
 17 .man-form-info {
 18   display: flex;
 19   flex-wrap: wrap;
 20   justify-content: center;
 21 }
 22 
 23 .man-form-info .name, .man-form-info .idcard, .man-form-info .phone,
 24 .man-form-info .regcode {
 25   display: flex;
 26   width: 100%;
 27   flex-wrap: wrap;
 28   margin-top: 2%;
 29 }
 30 
 31 .man-form-info input {
 32   width: 100%;
 33   border-bottom: 1px solid #ddd;
 34 }
 35 
 36 .regcode {
 37   position: relative;
 38 }
 39 
 40 .regcode button {
 41   border-radius: 10rpx;
 42   background-color: #3879d9;
 43   color: #fff;
 44   height: 54rpx;
 45   line-height: 54rpx;
 46   font-size: 23rpx;
 47   width: 300rpx;
 48   margin-top: -2%;
 49 }
 50 
 51 .regcode input {
 52   width: 100%;
 53 }
 54 
 55 .code {
 56   position: relative;
 57   width: 100%;
 58 }
 59 
 60 .code button {
 61   position: absolute;
 62   top: 72rpx;
 63   right: 0;
 64 }
 65 
 66 .self-idcard-info {
 67   margin-top: 15%;
 68   display: flex;
 69   flex-wrap: wrap;
 70   justify-content: center;
 71   width: 100%;
 72   border: 1px dashed #ddd;
 73   padding: 2%;
 74 }
 75 
 76 .f-center {
 77   width: 100%;
 78   display: flex;
 79   justify-content: center;
 80 }
 81 
 82 .picture_list {
 83   padding: 0 7%;
 84 }
 85 
 86 .add-image {
 87   background-color: #ddd;
 88   color: #fff;
 89 }
 90 
 91 .upload_progress {
 92   width: 167rpx;
 93   height: 164rpx;
 94 }
 95 
 96 .apply {
 97   width: 96%;
 98   display: flex;
 99   justify-content: space-between;
100   align-items: center;
101   padding: 2%;
102   border-top: 2px solid #ddd;
103   border-bottom: 2px solid #ddd;
104 }
105 
106 .apply-deposit {
107   font-weight: bold;
108 }
109 
110 .apply-deposit-amount {
111   font-weight: bold;
112   color: #fdd20c;
113 }
114 
115 .apply button {
116   margin: 0;
117   padding: 0;
118   width: 240rpx;
119   height: 60rpx;
120   line-height: 60rpx;
121   color: #fff;
122   background-color: #fdd20c;
123 }
124 
125 .read-man-pact {
126   display: flex;
127   justify-content: center;
128   padding: 2%;
129 }
130 
131 .read-man-pact checkbox-group {
132   display: flex;
133   align-items: center;
134 }
135 
136 .pact {
137   border-bottom: 1px solid #ddd;
138 }
139 
140 .submit-form-info {
141   display: flex;
142   justify-content: center;
143 }
144 
145 .submit-form-info button {
146   background-color: #fdd000;
147   width: 80%;
148   margin: 3% 0;
149 }

 

 

效果图(拷贝上面的代码即可运行)

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序flex容器属性详解发布时间:2022-07-18
下一篇:
微信小程序第一天笔记发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap