label

用来改进表单组件的可用性,使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件。

for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。

目前可以绑定的控件有:<button>, <checkbox>, <radio>, <switch>

属性说明

属性名类型说明
forString绑定控件的 id

注:

  • app-nvue平台 暂不支持for属性示例
  1. <template>
  2. <view>
  3. <view class="uni-common-mt">
  4. <view class="uni-form-item uni-column">
  5. <view class="title">表单组件在label内</view>
  6. <checkbox-group class="uni-list" @change="checkboxChange">
  7. <label class="uni-list-cell uni-list-cell-pd" v-for="item in checkboxItems" :key="item.name">
  8. <view>
  9. <checkbox :value="item.name" :checked="item.checked"></checkbox>
  10. </view>
  11. <view>{{item.value}}</view>
  12. </label>
  13. </checkbox-group>
  14. </view>
  15. <view class="uni-form-item uni-column">
  16. <view class="title">label用for标识表单组件</view>
  17. <radio-group class="uni-list" @change="radioChange">
  18. <label class="uni-list-cell uni-list-cell-pd" v-for="(item,index) in radioItems" :key="index">
  19. <view>
  20. <radio :id="item.name" :value="item.name" :checked="item.checked"></radio>
  21. </view>
  22. <view>
  23. <label class="label-2-text" :for="item.name">
  24. <text>{{item.value}}</text>
  25. </label>
  26. </view>
  27. </label>
  28. </radio-group>
  29. </view>
  30. <view class="uni-form-item uni-column">
  31. <view class="title">label内有多个时选中第一个</view>
  32. <checkbox-group class="uni-list" @change="checkboxChange">
  33. <label class="label-3">
  34. <view class="uni-list-cell uni-list-cell-pd">
  35. <checkbox class="checkbox-3">选项一</checkbox>
  36. </view>
  37. <view class="uni-list-cell uni-list-cell-pd">
  38. <checkbox class="checkbox-3">选项二</checkbox>
  39. </view>
  40. <view class="uni-link uni-center" style="margin-top:20rpx;">点击该label下的文字默认选中第一个checkbox</view>
  41. </label>
  42. </checkbox-group>
  43. </view>
  44. </view>
  45. </view>
  46. </template>
  1. export default {
  2. data() {
  3. return {
  4. checkboxItems: [{
  5. name: 'USA',
  6. value: '美国'
  7. },
  8. {
  9. name: 'CHN',
  10. value: '中国',
  11. checked: 'true'
  12. }
  13. ],
  14. radioItems: [{
  15. name: 'USA',
  16. value: '美国'
  17. },
  18. {
  19. name: 'CHN',
  20. value: '中国',
  21. checked: 'true'
  22. }
  23. ],
  24. hidden: false
  25. }
  26. },
  27. methods: {
  28. checkboxChange: function(e) {
  29. console.log(e)
  30. var checked = e.target.value
  31. var changed = {}
  32. for (var i = 0; i < this.checkboxItems.length; i++) {
  33. if (checked.indexOf(this.checkboxItems[i].name) !== -1) {
  34. changed['checkboxItems[' + i + '].checked'] = true
  35. } else {
  36. changed['checkboxItems[' + i + '].checked'] = false
  37. }
  38. }
  39. },
  40. radioChange: function(e) {
  41. var checked = e.target.value
  42. var changed = {}
  43. for (var i = 0; i < this.radioItems.length; i++) {
  44. if (checked.indexOf(this.radioItems[i].name) !== -1) {
  45. changed['radioItems[' + i + '].checked'] = true
  46. } else {
  47. changed['radioItems[' + i + '].checked'] = false
  48. }
  49. }
  50. }
  51. }
  52. }

uniapp


发现错误?想参与编辑?在 GitHub 上编辑此页面!