微信小程序选择,如果点击的不是已选中的7个,超过7个提示超过7个,如果点击已选中的7个就减少一个选中的,选中的改变颜色

拇指一代
  • 290

问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

<view class="habit_taglist">
        <view class="{{item.active?'active-tag':''}} habit_tag fl" wx:for="{{tags}}"  bindtap="tagTap" data-key="{{index}}" wx:key="index"   data-test="4">{{item.habitName}}</view>
</view>

tagTap: function (e) {
    var index = e.currentTarget.dataset.key;
    this.data.tags[index].active = !this.data.tags[index].active
    this.setData({
      tags: this.data.tags
    });
    console.log(this.data.tags)
 },

你期待的结果是什么?实际看到的错误信息又是什么?

图片描述
求教

回复
阅读 1.2k
1 个回答

已解决。
tagTap:

function (e) {
    this.setData({
      habittags:[]
    })
    var index = e.currentTarget.dataset.key;
    for (var i = 0; i < this.data.tags.length; i++) {
      if (this.data.tags[i].active) {
        this.data.habittags.push(
          {
            habitId: this.data.tags[i].zid,
            babyId: this.data.babyId,
            groupId: getApp().globalData.groupId,
            habitDay: this.data.tags[i].habitDay
          })
      }
    }
    this.setData({
      habittags: this.data.habittags
    })
    if (this.data.habittags.length>=7){
      if (this.data.tags[index].active){
        this.data.tags[index].active = !this.data.tags[index].active
        this.setData({
          tags: this.data.tags
        });
      }else{
        var test = e.target.dataset.test;
        if (test == 4) {
          feedbackApi.showToast({
            title: '建议选择不超过7个习惯',
            mask: false
          })
        }
      }
    }else{
      this.data.tags[index].active = !this.data.tags[index].active
      this.setData({
        tags: this.data.tags
      });
    }    

},

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏