微信小程序中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 相关文章推荐
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
javaScript中with函数用法实例分析
Jun 08 Javascript
jQuery满意度星级评价插件特效代码分享
Aug 19 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
JS请求servlet功能示例
Jun 01 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
浅谈Vue网络请求之interceptors实际应用
Feb 28 Javascript
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
js实现GIF动图分解成多帧图片上传
Oct 24 Javascript
详细谈谈JavaScript中循环之间的差异
Aug 23 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版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
Web服务器框架 Tornado简介
2014/07/16 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
Python实现多线程的两种方式分析
2018/08/29 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
介绍一下Linux中的链接
2016/06/05 面试题
优秀生推荐信范文
2013/11/28 职场文书
公司建议书怎么写
2014/05/15 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
公司宣传语大全
2015/07/13 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python