label

用来改进表单组件的可用性。

效果展示

示例代码

WXML

<view class="page">
<view class="page__hd">
<text class="page__title">label</text>
<text class="page__desc">标签</text>
</view>
<view class="page__bd">
<view class="section section_gap">
<view class="section__title">表单组件在label内</view>
<view class="block-view">{{res}}</view>
<checkbox-group class="group" bindchange="checkboxChange">
<view class="label-1" wx:for-items="{{checkboxItems}}">
<label>
<checkbox value="{{item.name}}" checked="{{item.checked}}"></checkbox>
<text class="label-1__text">{{item.value}}</text>
</label>
</view>
</checkbox-group>
</view>

<view class="section section_gap">
<view class="section__title">label用for标识表单组件</view>
<radio-group class="group" bindchange="radioChange">
<view class="label-2" wx:for-items="{{radioItems}}">
<radio id="{{item.name}}" value="{{item.name}}" checked="{{item.checked}}"></radio>
<label class="label-2__text" for="{{item.name}}"><text>{{item.name}}</text></label>
</view>
</radio-group>
</view>


<view class="section section_gap">
<view class="section__title">绑定button</view>
<label class="label-3">
<text>点击这段文字,button会被选中</text>
<view>{{res_button}}</view>
<button type="default" name="1" bindtap="tapEvent">按钮</button>
</label>

</view>

<view class="section section_gap">
<view class="section__title">绑定switch</view>
<label class="label-3">
<text>点击这段文字,switch会被选中或取消</text>
<switch checked="{{false}}"></switch>
</label>
</view>

<view class="section section_gap">
<view class="section__title">label内有多个时选中第一个</view>
<label class="label-4">
<checkbox> 选中我 </checkbox>
<checkbox> 选不中 </checkbox>
<checkbox> 选不中 </checkbox>
<checkbox> 选不中 </checkbox>
<view class="label-4_text">点我会选中第一个</view>
</label>
</view>
</view>
</view>

JS

Page({
data: {
checkboxItems: [
{name: 'USA', value: '美国'},
{name: 'CHN', value: '中国', checked: 'true'},
{name: 'BRA', value: '巴西'},
{name: 'JPN', value: '日本', checked: 'true'},
{name: 'ENG', value: '英国'},
{name: 'FRA', value: '法国'},
],
radioItems: [
{name: 'USA', value: '美国'},
{name: 'CHN', value: '中国', checked: 'true'},
{name: 'BRA', value: '巴西'},
{name: 'JPN', value: '日本'},
{name: 'ENG', value: '英国'},
{name: 'FRA', value: '法国'},
],
hidden: false,
res: 'res',
res_button: 'res_button',
res_radio: 'res_radio',
res_switch: 'res_switch'

},
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].name) !== -1) {
changed['checkboxItems['+i+'].checked'] = true
} else {
changed['checkboxItems['+i+'].checked'] = false
}
}
this.setData(changed);
this.setData({
res: JSON.stringify(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[i].name) !== -1) {
changed['radioItems['+i+'].checked'] = true
} else {
changed['radioItems['+i+'].checked'] = false
}
}
this.setData(changed)
this.setData({
res_radio: JSON.stringify(changed)
})
},
tapEvent: function(e) {
console.log('按钮被点击');
this.setData({
res_button: 'button clicked'
})
}
})

WXSS

.label-1, .label-2{
margin-bottom: 15px;
}

.label-4_text{
text-align: center;
margin-top: 15px;
}
.block-view {
width: 100%;
}

API

使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件。 for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。 目前可以绑定的控件有:button, checkbox, radio, switch

属性 类型 默认值 必填 说明
for string 绑定控件的 id

多平台支持

属性 平台支持
for 支付宝

注释:

支付宝不支持绑定button组件