微信小程序中form 表单提交和取值实例详解
微信小程序中form表单提交和取值实例详解
我们知道,如果我们直接给input添加bindinput,比如:
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代码
用户: 密码: 兴趣: 级别: 注册
.js代码
reg:function(e){ console.log(e.detail.value); wx.showToast({ title:e.detail.value["cb"].join(","), icon:"success", duration:2000 }); }
重要说明
微信小程序的input有个属性叫type,这个type有几个可选值: text:不必解释 注意:number是无小数点的,digit是有小数点的。我严重怀疑这是个BUG。 “羽毛球”那一项,我们是故意写作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中观察值,再来取。 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
number:数字键盘(无小数点)
idcard:数字键盘(无小数点、有个X键)
digit:数字键盘(有小数点)