label
基础库 1.0.0 开始支持本组件。
用来改进表单组件的可用性,使用 for 属性找到对应的 id,或者将控件放在该标签下,当点击时,就会触发对应的控件。
for 优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。
目前可以绑定的控件有:<button />, <checkbox />, <radio />, <switch />。
属性说明
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
for | string | 否 | 绑定控件的 id | 1.0.0 |
效果示例
代码示例
<view class="page-section page-section-space">
<view class="page-section-title">表单组件在label内</view>
<checkbox-group class="group" bindchange="checkboxChange">
<view class="label-1" :for="{{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="page-section page-section-space">
<view class="page-section-title">label用for标识表单组件</view>
<radio-group class="group" bindchange="radioChange">
<view class="label-2" :for="{{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="page-section page-section-space">
<view class="page-section-title">label内有多个时选中第一个</view>
<label class="label-3">
<checkbox class="checkbox-3">选项一</checkbox>
<checkbox class="checkbox-3">选项二</checkbox>
<view class="label-3-text">点击该label下的文字默认选中第一个checkbox</view>
</label>
</view>
Page({
data: {
checkboxItems: [
{ name: "tt", value: "头条" },
{ name: "xigua", value: "西瓜视频", checked: "true" }
],
radioItems: [
{ name: "Toutiao", value: "头条" },
{ name: "Xigua", value: "西瓜视频", checked: "true" }
],
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].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[i].name) !== -1) {
changed["radioItems[" + i + "].checked"] = true;
} else {
changed["radioItems[" + i + "].checked"] = false;
}
}
this.setData(changed);
},
tapEvent: function(e) {
console.log("按钮被点击");
}
});