微信小程序 label 标签 组件

水深无声 2021-09-08 01:14 528阅读 0赞

完整微信小程序(Java后端) 技术贴目录清单页面(必看)

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

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






















属性 类型 默认值 必填 说明 最低版本
for string 绑定控件的 id 1.0.0

示例代码

在开发者工具中预览效果

index.wxml

  1. <view class="section section_gap">
  2. <view class="section__title">表单组件在label内</view>
  3. <checkbox-group class="group" bindchange="checkboxChange">
  4. <view class="label-1" wx:for="{ {checkboxItems}}">
  5. <label>
  6. <checkbox hidden value="{ {item.name}}" checked="{ {item.checked}}"></checkbox>
  7. <view class="label-1__icon">
  8. <view class="label-1__icon-checked" style="opacity:{ { item.checked ? 1: 0}}"></view>
  9. </view>
  10. <text class="label-1__text">{
  11. {item.value}}</text>
  12. </label>
  13. </view>
  14. </checkbox-group>
  15. </view>
  16. <view class="section section_gap">
  17. <view class="section__title">label用for标识表单组件</view>
  18. <radio-group class="group" bindchange="radioChange">
  19. <view class="label-2" wx:for="{ {radioItems}}">
  20. <radio id="{ {item.name}}" hidden value="{ {item.name}}" checked="{ {item.checked}}"></radio>
  21. <view class="label-2__icon">
  22. <view class="label-2__icon-checked" style="opacity:{ { item.checked ? 1: 0}}"></view>
  23. </view>
  24. <label class="label-2__text" for="{ {item.name}}"><text>{
  25. {item.name}}</text></label>
  26. </view>
  27. </radio-group>
  28. </view>

index.js

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

运行效果:

\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kQBVm7Un-1622384672422)(image-20210529133612798.png)\]

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

发表评论

表情:
评论列表 (有 0 条评论,528人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序 - 组件

    > 微信小程序为开发者提供了一系列基础组件,使开发者可以进行快速开发。同时还支持自定义组件,提升代码复用性,有助于代码维护。 一、基础组件 > 基础组件主要分为:视图容