微信小程序 WeUI form 表单验证

本文探讨了微信小程序中使用WeUI form进行表单验证时遇到的问题,包括required规则对空数组的处理、多条规则验证逻辑、错误信息显示不全以及验证规则的启用禁用状态。作者通过修改WeUI源码提出了解决方案,并分享了添加自定义validator的方法及QQ验证规则的示例。
摘要由CSDN通过智能技术生成

背景

因为公司项目需要,最近在调研微信小程序。小程序不仅提供了丰富的组件帮程序员快速构建app,而且还提供了一套微信风格的UI组件库 WeUI
Form 表单数据验证是常用的场景之一。现在小程序中实现 form 表单验证有以下两种途径:

  1. WxValidate - 表单验证
  2. WeUI form - 本身提供的表单验证

因本人想用 WeUI,所以尝试采用第2种方式。但发现使用过程中各种坑。

WeUI form 表单验证问题

以 WeUI form 官方提供的表单验证 demo 为例,存在以下问题:

  • 内置规则 required 无法判断空数组的情况。 即无法验证复选框选择状态;
  • 当给一个 field 配置多条 rule,第一条 rule 验证失败,还会再验证第二条 rule,不符合逻辑。 如对于 mobile,不填如何数据,提示的错误信息还是 “mobile 格式不对”,应该提示 “mobile 必填”;
  • 当表单验证失败时,返回的错误信息不一定包
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简微信小程序 weui 实现选投票的代码示例: 1. 在 app.json 文件中添加页面路径: ``` { "pages": [ "pages/index/index", "pages/vote/vote" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle": "black" } } ``` 2. 在 index 页面中添加一个跳转到投票页面的按钮: ``` <view class="container"> <button class="weui-btn" bindtap="goToVote">去投票</button> </view> ``` 3. 在 index 页面的 js 文件中添加 goToVote 函数: ``` Page({ goToVote: function() { wx.navigateTo({ url: '/pages/vote/vote' }) } }) ``` 4. 在 vote 页面中添加一个 radio-group 和若干 radio 控件: ``` <view class="container"> <form bindsubmit="submitVote"> <view class="weui-cells weui-cells_radio"> <label class="weui-cell weui-check__label" for="option1"> <view class="weui-cell__bd">选项1</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option1" checked="true"></radio> </view> </label> <label class="weui-cell weui-check__label" for="option2"> <view class="weui-cell__bd">选项2</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option2"></radio> </view> </label> <label class="weui-cell weui-check__label" for="option3"> <view class="weui-cell__bd">选项3</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option3"></radio> </view> </label> </view> <button class="weui-btn weui-btn_primary" form-type="submit">投票</button> </form> </view> ``` 5. 在 vote 页面的 js 文件中添加 submitVote 函数: ``` Page({ submitVote: function(e) { var option = e.detail.value.options; wx.showModal({ title: '投票结果', content: '您选择了' + option, showCancel: false }) } }) ``` 这样就完成了一个简选投票的微信小程序 weui 实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值