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

label标签组件说明:

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

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

<view class="content">

  <text class="section__title">-------label绑定checkbox(内嵌)-------</text>

  <checkbox-group bindchange="checkboxChange">

    <view class="label-1" wx:for="{{checkboxItems}}">

      <label>

        <checkbox hidden value="{{item.name}}" checked="{{item.checked}}"></checkbox>

        <view class="label-1__icon">

          <view class="label-1__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>

        </view>

        <text class="label-1__text">{{item.value}}</text>

      </label>

    </view>

  </checkbox-group>

</view>

<view class="content">

  <text class="section__title">---------label绑定radio(for)---------</text>

  <radio-group class="group" bindchange="radioChange">

    <view class="label-2" wx:for="{{radioItems}}">

      <radio id="{{item.name}}" hidden value="{{item.name}}" checked="{{item.checked}}"></radio>

      <view class="label-2__icon">

        <view class="label-2__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>

      </view>

      <label class="label-2__text" for="{{item.name}}"><text>{{item.name}}</text></label>

    </view>

  </radio-group>

</view>

<view class="content">

  <text class="section__title">-----------label绑定button-----------</text>

  <label for="buttontest">label绑定button(for)</label>

  <button id="buttontest" bindtap="testLabelBindButton_1">Fly-1</button>

  <label>

    <text>label绑定button(内嵌)</text>

    <button bindtap="testLabelBindButton_2">Fly-2</button>

  </label>

</view>

<view class="content">

  <text class="section__title">-----------label绑定switch-----------</text>

  <view>

    <label for="switchtest">label绑定switch( for)</label>

    <switch id="switchtest" checked/>

  </view>

  <view>

    <label>

      <text>label绑定switch(内嵌)</text>

      <switch/>

    </label>

  </view>

    <view>

    <label>

      <text>label绑定switch(内嵌)</text>

      <switch/>

      <switch/>

      <switch/>

    </label>

  </view>

</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

38

39

40

41

42

43

44

45

Page({

  data: {

    checkboxItems: [

      {name: ‘ctrip‘, value: ‘携程‘, checked: ‘true‘},

      {name: ‘qunar‘, value: ‘去哪儿‘},

      {name: ‘tuniu‘, value: ‘途牛‘}

    ],

    radioItems: [

      {name: ‘ctrip‘, value: ‘携程‘},

      {name: ‘qunar‘, value: ‘去哪儿‘, checked: ‘true‘},

      {name: ‘tuniu‘, value: ‘途牛‘}

    ],

    hidden: false

  },

  checkboxChange: function(e) {

    var checked = e.detail.value

    var changed = {}

    for (var i = 0; i < this.data.checkboxItems.length; i ++) {

      if (checked.indexOf(this.data.checkboxItems[i][i].name) !== -1) {

        changed[‘checkboxItems[‘+i+‘].checked‘] = true

      } else {

        changed[‘checkboxItems[‘+i+‘].checked‘] = false

      }

    }

    this.setData(changed)

  },

  radioChange: function(e) {

    var checked = e.detail.value

    var changed = {}

    for (var i = 0; i < this.data.radioItems.length; i ++) {

      if (checked.indexOf(this.data.radioItems.name) !== -1) {

        changed[‘radioItems[‘+i+‘].checked‘] = true

      } else {

        changed[‘radioItems[‘+i+‘].checked‘] = false

      }

    }

    this.setData(changed)

  },

  testLabelBindButton_1:function(){

    console.log("奔走相告,button通过for可以绑定成功啦!!!");

  },

  testLabelBindButton_2:function(){

    console.log("奔走相告,button通过内嵌可以绑定成功啦!!!");

  }

})

其中的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

.label-1, .label-2{

    margin-bottom: 15px;

}

.label-1__text, .label-2__text {

    display: inline-block;

    vertical-align: middle;

}

.label-1__icon {

    position: relative;

    margin-right: 10px;

    display: inline-block;

    vertical-align: middle;

    width: 18px;

    height: 18px;

    background: #CAE1FF;

}

.label-1__icon-checked {

    position: absolute;

    top: 3px;

    left: 3px;

    width: 12px;

    height: 12px;

    background: #1aad19;

}

.label-2__icon {

    position: relative;

    display: inline-block;

    vertical-align: middle;

    margin-right: 10px;

    width: 18px;

    height: 18px;

    background: #CAFF70;

    border-radius: 50px;

}

.label-2__icon-checked {

    position: absolute;

    left: 3px;

    top: 3px;

    width: 12px;

    height: 12px;

    background: #1aad19;

    border-radius: 50%;

}

.section__title{

  display: block;

  text-align: center;

  color: #9400D3;

}

.content{

  padding-bottom: 15px;

}


主要属性:


属性

类型

类型
for String 绑定控件的 id(该id和需要被绑定的表单控件的id一模一样才生效)

点击查看原文

时间: 2024-10-05 16:32:45

微信小程序组件解读和分析:十一、label标签的相关文章

微信小程序组件解读和分析:五、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

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

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

微信小程序组件解读和分析:十、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

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

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

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

form表单组件说明: 表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <picker/> 提交. 当点击 <form/> 表单中 formType 为 submit 的<button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key. form表单组件用法: 重置:<butt

微信小程序组件解读和分析:十五、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