微信小程序中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的一点点认识总结《javascript高级程序设计》读书笔记
Nov 30 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
让JavaScript和其它资源并发下载的方法
Oct 16 Javascript
浅谈JavaScript function函数种类
Dec 29 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
Jul 28 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
Nov 14 Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
vue实现百度下拉列表交互操作示例
Mar 12 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
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 select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
基于php下载文件的详解
2013/06/02 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
PHP分页类集锦
2014/11/18 PHP
php创建无限级树型菜单
2015/11/05 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python 备份程序代码实现
2017/03/06 Python
Python中property属性实例解析
2018/02/10 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
对Python w和w+权限的区别详解
2019/01/23 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
优秀经理事迹材料
2014/02/01 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
融资合作协议书范本
2014/10/17 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫