首页 > 代码库 > 微信小程序组件解读和分析:十一、label标签
微信小程序组件解读和分析:十一、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一模一样才生效) |
点击查看原文
微信小程序组件解读和分析:十一、label标签
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。