微信小程序中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 相关文章推荐
avascript中的自执行匿名函数应用示例
Sep 15 Javascript
理解JavaScript表单的基础知识
Jan 25 Javascript
js实现分割上传大文件
Mar 09 Javascript
谈谈target=_new和_blank的不同之处
Oct 25 Javascript
微信小程序 网络请求(GET请求)详解
Nov 16 Javascript
vue实现列表的添加点击
Dec 29 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
使用js实现单链解决前端队列问题的方法
Feb 03 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 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使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
Django与JS交互的示例代码
2017/08/23 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python读取stdin方法实例
2019/05/24 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
后勤部长岗位职责
2013/12/14 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
护士先进个人总结
2015/02/13 职场文书
校友回访母校寄语
2015/02/26 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
运动会新闻报道稿
2015/07/22 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库