收藏
回答

关于checkbox 限制选择个数 其余不可选

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 checkbox 客户端 6.7.2 2.2.2

- 需求的场景描述(希望官方出一个最大选择项的配置项,配置此项后,其余动态生成的checkbox自动变为不可选状态,如当前选择数小于最大选择数时,所有都可选。目前我可以通过循环来解决问题,但是会出现卡顿,也就是动态生成的数量把选择过程变的很卡,希望官方出一个可配项,解决这个问题。)


- 希望提供的能力


回答关注问题邀请回答
收藏

3 个回答

  • 佑之以航
    佑之以航
    2018-10-22

    再细化描述一下需求:

    1. 设置最大选项数

    2. 当前选项数小于最大选项数时所有选项可选

    3. 当前选项数大于最大选项数时未选项不可选,已选项可取消

    难点:

      1.选项是动态生成,个数不确定

       2.用的循环实现,选项多了很卡

    诉求:

    1. 官方出一个可配项,出现上述需求直接改变选框状态

    2. 类似图片最大上传数,填入配置项后可以限制上传图片数量

    2018-10-22
    有用 1
    回复
  • Tony💤
    Tony💤
    2020-06-30
       const items = this.data.items
        const values = e.detail.value
        //判断如果选择长度大于3,则删除第一个已选择的元素
          if(values.length>3){
            values.shift(values[0])
          }
        for (let i = 0, lenI = items.length; i < lenI; ++i) {
          items[i].checked = false     
          for (let j = 0, lenJ = values.length; j < lenJ; ++j) {
            
            if (items[i].value === values[j]) {
              items[i].checked = true
              break
            }
          }
        }
    

    在官方代码基础上进行注释行判断,选择项大于3直接删除第一个。

    然官方这块有个很大的坑,e.detail.value接收的用户点击选项,其数组排序和点击顺序无关,其顺序竟然是跟的默认选择项顺序,所以当你选择多于3项时,抛出的是最上面的一个选项,希望其他高手给出解决办法。


    2020-06-30
    有用
    回复
  • 卢霄霄
    卢霄霄
    2018-10-22

    我只是问一下哈。。大概是多少个选项啊,循环会卡

    2018-10-22
    有用
    回复 1
    • 佑之以航
      佑之以航
      2018-10-23

      不确定,可能是几个可能是几十个

      2018-10-23
      回复
登录 后发表内容