微信小程序中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 相关文章推荐
Document 对象的常用方法
Jul 31 Javascript
28个JS验证函数收集
Mar 02 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
js获取 type=radio 值的方法
May 09 Javascript
jQuery构造函数init参数分析
May 13 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
傻瓜式vuex语法糖kiss-vuex整理
Dec 21 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
开启PHP的伪静态模式
2015/12/31 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
php数据序列化测试实例详解
2017/08/12 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
图文详解WinPE下安装Python
2016/05/17 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
《美丽的黄昏》教学反思
2014/02/28 职场文书
运动员获奖感言
2014/08/15 职场文书
离婚协议书范本2014
2014/10/27 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
长江三峡导游词
2015/01/31 职场文书
征求意见函
2015/06/05 职场文书
反邪教观后感
2015/06/11 职场文书
安全生产标语口号
2015/12/26 职场文书
2016党校学习心得体会
2016/01/07 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
python脚本框架webpy的url映射详解
2021/11/20 Python