这里有新鲜出炉的微信小程序入门,程序狗速度看过来!
微信小程序(weixinxiaochengxu),简称小程序,缩写 XCX,英文名 mini program,是一种不需要下载安装即可使用的应用,它实现了应用 "触手可及" 的梦想,用户扫一扫或搜一下即可打开应用。
这篇文章主要介绍了微信小程序中 form 表单提交和取值实例详解的相关资料, 需要的朋友可以参考下
微信小程序中 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 中观察值,再来取。
来源: http://www.phperz.com/article/17/0617/333918.html