微信小程序中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 读取元素的CSS信息的代码
Feb 07 Javascript
基于JQuery的密码强度验证代码
Mar 01 Javascript
javascript 类型判断代码分析
Mar 28 Javascript
Jquery提交表单 Form.js官方插件介绍
Mar 01 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
Apr 27 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
JavaScript中匿名函数的用法及优缺点详解
Jun 01 Javascript
常见的浏览器Hack技巧整理
Jun 29 Javascript
在layui tab控件中载入外部html页面的方法
Sep 04 Javascript
vue + axios get下载文件功能
Sep 25 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
linux下python抓屏实现方法
2015/05/22 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
团拜会策划方案
2014/06/07 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
个人创业事迹材料
2014/12/30 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL