微信小程序组件解读和分析:九、form表单

form表单组件说明:

表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <picker/> 提交。

当点击 <form/> 表单中 formType 为 submit 的<button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key。

form表单组件用法:

重置:<button formType="reset">Reset</button>

form表单组件示例代码运行效果如下:

提交: <button formType="submit">Submit</button>

下面是WXML代码:

[XML] 纯文本查看 复制代码

?


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

<view class="page">

  <view class="page__hd">

    <text class="page__title">表单控件</text>

  </view>

  <form class="page__bd" catchsubmit="formSubmit" catchreset="formReset">

    <view class="section">

      <view class="section__title">您的姓名:</view>

      <input name="name" placeholder="姓名:" />

    </view>

    <view class="section section_gap">

      <view class="section__title">性别:</view>

      <radio-group name="gender">

        <label><radio value="男"/>男</label>

        <label><radio value="女"/>女</label>

        <label><radio value="其他"/>其他</label>

      </radio-group>

    </view>

    <view class="section section_gap">

      <view class="section__title">年龄:</view>

      <slider value="18" name="age" show-value ></slider>

    </view>

    <view class="section section_gap">

      <view class="section__title">擅长的开发语言:</view>

      <checkbox-group name="technology">

        <label><checkbox value="Java"/>Java</label>

        <label><checkbox value="JavaScript"/>JavaScript</label>

        <label><checkbox value="C++"/>C++</label>

        <label><checkbox value="C"/>C</label>

        <label><checkbox value="Object-C"/>Object-C</label>

        <label><checkbox value="C#"/>C#</label>

        <label><checkbox value="Python"/>;Python</label>

        <label><checkbox value="PHP"/>;PHP</label>

        <label><checkbox value="Ruby"/>Ruby</label>

        <label><checkbox value="Swift"/>Swift</label>

      </checkbox-group>

    </view>

    <view class="section section_gap">

      <view class="section__title">是否公开信息:</view>

      <switch name="isPublic"/>

    </view>

    <view class="btn-area">

      <button formType="submit">Submit</button>

      <button formType="reset">Reset</button>

    </view>

    <modal class="modal" hidden="{{modalHidden}}" no-cancel bindconfirm="modalChange">

      <view> 您填写的表单如下 </view>

      <view> 姓名:{{name}} </view>

      <view> 性别:{{gender}} </view>

      <view> 年龄:{{age}} </view>

      <view> 擅长的开发语言:{{technology}} </view>

      <view> 是否公开信息:{{isPublic}} </view>

    </modal>

  </form>

</view>

下面是JS代码:

[JavaScript] 纯文本查看 复制代码

?


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

Page({

  data: {

    pickerHidden: true,

    chosen: ‘‘,

    modalHidden: true,

    name: ‘‘,

    gender: ‘‘,

    age: ‘‘,

    technology: ‘‘,

    isPublic: ‘‘

  },

  formSubmit: function(e) {

    var value =  e.detail.value;

    this.setData(

      {

        modalHidden: false,

        name: value.name,

        gender: value.gender,

        age: value.age,

        technology: value.technology,

        isPublic: value.isPublic

      }

    );

    console.log(‘form发生了submit事件,携带数据为:‘, e.detail.value)

  },

  formReset: function(e) {

    console.log(‘form发生了reset事件,携带数据为:‘, e.detail.value)

    this.setData({

      chosen: ‘‘

    })

  },

  modalChange: function(e) {

    this.setData({

      modalHidden: true

    })

  },

})

下面是WXSS代码:

[CSS] 纯文本查看 复制代码

?


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

wx-label {

  display: block;

  margin-top: 10rpx;

  margin-left: 15rpx;

}

.section__title{

  font-size: 30rpx;

  margin-bottom: 30rpx;

  font-weight: bold;

}

.page {

    min-height: 100%;

    flex: 1;

    background-color: #FBF9FE;

    font-size: 32rpx;

    font-family: -apple-system-font,Helvetica Neue,Helvetica,sans-serif;

    overflow: hidden;

}

.page__hd{

    padding: 50rpx 50rpx 100rpx 50rpx;

    text-align: center;

}

.page__title{

    display: inline-block;

    padding: 20rpx 40rpx;

    font-size: 32rpx;

    color: #AAAAAA;

    border-bottom: 1px solid #CCCCCC;

}

.page__desc{

    display: none;

    margin-top: 20rpx;

    font-size: 26rpx;

    color: #BBBBBB;

}

.section{

    margin-bottom: 80rpx;

}

.section_gap{

    padding: 0 30rpx;

}

.section__title{

    margin-bottom: 16rpx;

    padding-left: 30rpx;

    padding-right: 30rpx;

}

.section_gap .section__title{

    padding-left: 0;

    padding-right: 0;

}

.btn-area{

    padding: 0 30px;

}

.btn-area button{

    margin-top: 20rpx;

    margin-bottom: 20rpx;

}

.page input{

    padding: 20rpx 30rpx;

    background-color: #fff;

    margin-left: 20rpx;

}

form表单的主要属性:


属性

类型

说明

report-submit

Boolean

是否返回formId用于发送模板消息

bindsubmit

EventHandle

携带form中的数据触发submit事件,event.detail = {value : {‘name’: ‘value’} , formId: ‘’}

注意:

本案例使用的modal组件即将过期,推荐使用wx.showModal API

将formSubmit方法改写成这样,就可以。目前wx.showModal这个API的content不支持换行,有可能是Bug,期待后续优化。

[JavaScript] 纯文本查看 复制代码

?


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

formSubmit: function(e) {

    var value =  e.detail.value;

    wx.showModal({

      title: ‘您填写的表单如下‘,

      content: ‘姓名:‘+value.name

              +‘性别:‘+value.gender

              +‘年龄:‘+value.age

              +‘擅长的开发语言:‘+value.technology

              +‘是否公开信息:‘ + value.isPublic,

      showCancel: false,

      success: function(res) {

        if (res.confirm) {

          console.log(‘用户点击确定‘)

        }

      }

    });

  },

点击查看原文

时间: 2024-10-13 12:18:23

微信小程序组件解读和分析:九、form表单的相关文章

微信小程序组件解读和分析:五、text文本

text文本组件说明: text 文本就是微信小程序中显示出来的文本. text文本组件的示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 1 2 3 4 <view > <text>我是文本组件</text> </view> <text>{{text}}</text> 下面是JS代码: [JavaScript] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 1

微信小程序组件解读和分析:六、progress进度条

progress进度条组件说明: 进度条,就是表示事情当前完成到什么地步了,可以让用户视觉上感知事情的执行.progress进度条是微信小程序的组件,和HTML5的进度条progress类似. progress进度条组件示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 1 2 3 4 5 <!--index.wxml--> <view class="content">     <text class="con-t

微信小程序组件解读和分析:七、button按钮

button按钮组件说明: button,顾名思义,按钮,类似于html的button标签.我们可以设置按钮的属性,比如字体颜色大小,背景颜色等,可以给按钮绑定事件,用户点击时会触发事件. button按钮组件示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 1 2 3 4 5 <!--index.wxml--> <view class="content">     <text class="con-text&q

微信小程序组件解读和分析:四、icon图标

icon图标组件说明: icon是一种图标格式,用于系统图标.软件图标等,这种图标扩展名为.icon..ico.常见的软件或windows桌面上的那些图标一般都是ICON格式的.在应用上面很多地方用到了icon图标,这样方便程序表述程序返回的操作状态,用户一眼就能看出应用返回的意思,提高用户体验,在小程序的组件提供了常用的icon图标,详细使用看下面介绍! icon图标组件用法说明: 在使用的icon的时候,使用icon标签,然后有type属性和size属性, 具体的属性看最后的属性总结,标签的

微信小程序组件解读和分析:十一、label标签

label标签组件说明: label标签,与html的label标签基本一样.label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本,就会触发此控件.就是说,当用户选择该标签时,就会自动将焦点转到和标签绑定的表单控件上,主要用来改进表单组件的可用性.使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件.for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件.目前可以绑定的控件有:<button/>

微信小程序组件解读和分析:十五、switch 开关选择器

switch 开关选择器组件说明: switch,开关选择器.只能选择或者不选.这种属于表单控件或者查询条件控件. switch 开关选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <view class="secti

微信小程序组件解读和分析:十、input输入框

input输入框组件说明: 本文介绍input 输入框的各种参数及特性. input输入框示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <view class="content"> type:有效值:text 感觉没什么区别 <input  placeholder="type=text" type=

微信小程序组件解读和分析:十二、picker滚动选择器

picker滚动选择器组件说明: picker: 滚动选择器,现支持三种选择器,通过mode属性来区分, 分别是普通选择器(mode = selector),时间选择器(mode = time),日期选择器(mode = date), 默认是普通选择器. picker滚动选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23

微信小程序组件解读和分析:十三、radio单选项目

radio单选项目组件说明: radio:单选项目. radio-group: 单项选择器,内部由多个<radio/>组成. radio单选项目示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 <view class="page">   <view class="page__hd">     <text