博客列表 >微信小程序官方组件展示之表单组件label源码

微信小程序官方组件展示之表单组件label源码

软件事业部
软件事业部原创
2022年08月29日 11:03:28558浏览

以下将展示微信小程序之表单组件label源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。
功能描述:
用来改进表单组件的可用性。
使用 for 属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件。 for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。 目前可以绑定的控件有:button, checkbox, radio, switch, input。
属性说明:

示例代码:
JAVASCRIPT:

  1. Page({
  2. data: {
  3. checkboxItems: [
  4. { name: 'CHN', value: '中国', checked: 'true' },
  5. { name: 'BRA', value: '巴西' },
  6. { name: 'ENG', value: '英国', checked: 'true' },
  7. { name: 'TUR', value: '法国' },
  8. ],
  9. radioItems: [
  10. { name: 'CHN', value: '中国', checked: 'true' },
  11. { name: 'BRA', value: '巴西' },
  12. { name: 'ENG', value: '英国' },
  13. { name: 'TUR', value: '法国' },
  14. ],
  15. hidden: false
  16. },
  17. checkboxChange: function (e) {
  18. var checked = e.detail.value
  19. var changed = {}
  20. for (var i = 0; i < this.data.checkboxItems.length; i++) {
  21. if (checked.indexOf(this.data.checkboxItems[i].name) !== -1) {
  22. changed['checkboxItems[' + i + '].checked'] = true
  23. } else {
  24. changed['checkboxItems[' + i + '].checked'] = false
  25. }
  26. }
  27. this.setData(changed)
  28. },
  29. radioChange: function (e) {
  30. var checked = e.detail.value
  31. var changed = {}
  32. for (var i = 0; i < this.data.radioItems.length; i++) {
  33. if (checked.indexOf(this.data.radioItems[i].name) !== -1) {
  34. changed['radioItems[' + i + '].checked'] = true
  35. } else {
  36. changed['radioItems[' + i + '].checked'] = false
  37. }
  38. }
  39. this.setData(changed)
  40. }
  41. })

WXML:

  1. <view class="container">
  2. <view class="page-body">
  3. <view class="page-section page-section-gap">
  4. <view class="page-section-title">表单组件在label内</view>
  5. <checkbox-group class="group" bindchange="checkboxChange">
  6. <view class="label-1" wx:for="{{checkboxItems}}">
  7. <label>
  8. <checkbox value="{{item.name}}" checked="{{item.checked}}"></checkbox>
  9. <text class="label-1-text">{{item.value}}</text>
  10. </label>
  11. </view>
  12. </checkbox-group>
  13. </view>
  14. <view class="page-section page-section-gap">
  15. <view class="page-section-title">label用for标识表单组件</view>
  16. <radio-group class="group" bindchange="radioChange">
  17. <view class="label-2" wx:for="{{radioItems}}">
  18. <radio id="{{item.name}}" value="{{item.name}}" checked="{{item.checked}}"></radio>
  19. <label class="label-2-text" for="{{item.name}}"><text>{{item.name}}</text></label>
  20. </view>
  21. </radio-group>
  22. </view>
  23. <view class="page-section page-section-gap">
  24. <view class="page-section-title">label内有多个时选中第一个</view>
  25. <label class="label-3">
  26. <checkbox class="checkbox-3">选项一</checkbox>
  27. <checkbox class="checkbox-3">选项二</checkbox>
  28. <view class="label-3-text">点击该label下的文字默认选中第一个checkbox</view>
  29. </label>
  30. </view>
  31. </view>
  32. </view>

WXSS:

  1. .label-1, .label-2{
  2. margin: 30rpx 0;
  3. }
  4. .label-3-text{
  5. color: #576B95;
  6. font-size: 28rpx;
  7. }
  8. .checkbox-3{
  9. display: block;
  10. margin: 30rpx 0;
  11. }

版权声明: 本站所有内容均由互联网收集整理、上传,如涉及版权问题,我们第一时间处理。
原文链接地址:https://developers.weixin.qq.com/miniprogram/dev/component/label.html

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议