微信小程序> 微信小程序开发-form表单提交和取值

微信小程序开发-form表单提交和取值

浏览量:1652 时间: 来源:Ailsa-show

我们知道,如果我们直接给 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"        labelcheckbox value="A" /乒乓球/label        labelcheckbox value="B" checked="false" /羽毛球/label        labelcheckbox value="C" checked="{{checked}}" /排球/label    /checkbox-group/view    view级别:radio-group name="r"        labelradio value="a" /初级/label        labelradio value="b" /中级/label        labelradio value="c" /高级/label    /radio-group/view    viewbutton 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 中的不同,具体为:

  • text:不必解释
  • number:数字键盘(无小数点)
  • idcard:数字键盘(无小数点、有个 X 键)
  • digit:数字键盘(有小数点) 
    注意:number 是无小数点的,digit 是有小数点的。

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 中观察值,再来取。

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎