微信小程序中form 表单提交和取值实例详解


Posted in Javascript onApril 20, 2017

微信小程序中form 表单提交和取值实例详解

我们知道,如果我们直接给 input 添加 bindinput,比如:<input bindinput="onUsernameInput" />,那么可以在 onUsernameInput 中直接使用 e.detail.value,即:

onUsernameInput : function(e) {
  e.detail.value;
}

但是,如果有多个输入控件,我们不可能为每个控件添加 bindinput、bindchange 这类方法来获取值。我们得这样做:

第一步、添加 from 控件,并为其指定 bindsubmit 属性值。
第二步、添加输入控件到 form 中,并为其指定 name 属性值。
第三步、添加 button 控件,并为其指定 form-type="submit"。
第四步、在 js 中取值时,用 e.detail.value.xxx 或 e.detail.value["xxx"],其中 xxx 为 name 属性值。

.wxml 代码

<form bindsubmit="reg">

  <view>用户:<input type="text" name="username" /></view>

  <view>密码:<input password name="password" /></view>

  <view>兴趣:<checkbox-group name="cb">
    <label><checkbox value="A" />乒乓球</label>
    <label><checkbox value="B" checked="false" />羽毛球</label>
    <label><checkbox value="C" checked="{{checked}}" />排球</label>
  </checkbox-group></view>

  <view>级别:<radio-group name="r">
    <label><radio value="a" />初级</label>
    <label><radio value="b" />中级</label>
    <label><radio value="c" />高级</label>
  </radio-group></view>

  <view><button type="primary" form-type="submit">注册</button></view>

</form>

.js 代码

reg: function(e) {
  console.log(e.detail.value);
  
  wx.showToast({
    title: e.detail.value["cb"].join(","),
    icon: "success",
    duration: 2000
  });
}

重要说明

<input type="text" 中的 type 和 HTML 中的不同,

微信小程序的 input 有个属性叫 type,这个 type 有几个可选值:

text:不必解释
number:数字键盘(无小数点)
idcard:数字键盘(无小数点、有个 X 键)
digit:数字键盘(有小数点)

注意:number 是无小数点的,digit 是有小数点的。我严重怀疑这是个 BUG。

<input password /> 表示密码框(个人认为太怪异,不如直接叫 password 标签的好)。

“羽毛球”那一项,我们是故意写作 checked="false" 的,我们试图使之初始不选中,但是不如我们愿,它却选中了,这和 HTML 一样,并不认 checked 属性值,只认有没有这个标记。不过如果我们使用 {{}} 则不一样,比如“排球”一项,选中与否就受 data.checked 的影响。

input 的取值如前面所述,用 e.detail.value.xxx 或 e.detail.value["xxx"],其中 xxx 为 name 属性。

checkbox 的取值也是类似 input,不过 xxx 为 checkbox-group 的 name,取出来的值是数组,由选中项的 value 组成,比如选中了“乒乓球”、“排球”,结果就是:["1", "3"]。特别说明,这个顺序与我们选择的先后有关,比如我们先选择“排球”,再选择“乒乓球”,结果就是["3", "1"]。

radio 的取值和 input 一样,返回的是选中的那一项的 value,没有选中项就是 ""。

如果不知道值类型,也可用 console.log(e.detail.value); 将所有值输出来,然后在调试 Console 中观察值,再来取。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript实现x秒后自动跳转到一个页面
Jan 03 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
JS实现关闭当前页而不弹出提示框的方法
Jun 22 Javascript
bootstrap输入框组使用方法
Feb 07 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
May 17 Javascript
Vue中组件之间数据的传递的示例代码
Sep 08 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
JavaScript实现图片懒加载的方法分析
Jul 05 Javascript
JS简单数组排序操作示例【sort方法】
May 17 Javascript
重学JS之显示强制类型转换详解
Jun 30 Javascript
微信小程序实现星星评分效果
Nov 01 Javascript
ES6新特性一: let和const命令详解
Apr 20 #Javascript
javascript 正则表达式分组、断言详解
Apr 20 #Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 #jQuery
JS利用cookies设置每隔24小时弹出框
Apr 20 #Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 #Javascript
addEventListener()与removeEventListener()解析
Apr 20 #Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 #Javascript
You might like
PHP数据过滤的方法
2013/10/30 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
Javascript模块模式分析
2008/05/16 Javascript
javascript 学习之旅 (3)
2009/02/05 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
法雷奥SQA(electric)面试问题
2016/01/23 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
学生会竞选自荐信
2013/10/12 职场文书
高级电工工作职责
2013/11/21 职场文书
部队党性分析材料
2014/02/16 职场文书
白血病捐款倡议书
2014/05/14 职场文书
房产公证书样本
2015/01/23 职场文书
CSS 一行代码实现头像与国旗的融合
2021/10/24 HTML / CSS
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python