收藏
回答

checkbox多选按钮组怎么限制选择勾选的个数

checkbox多选按钮组,怎么限制选择勾选的个数,超出了禁止勾选    但是已选的按钮可以反选



求解帮忙,没头绪

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

3 个回答

  • 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项时,抛出的是最上面的一个选项,希望其他高手给出解决办法。


    个人自定义了最新的方法,已解决该问题了,详情见本人博客:https://www.diandian100.cn/cf5b448a.html

    2020-06-30
    有用 1
    回复
  • 后米米米米
    后米米米米
    2019-05-08

    最简单暴力的可能是维护一份数量跟checkbox选项一直的状态数组,0代表未选择,1代表一选择。

    然后每次勾选的时候先去遍历数组,看看是否达到最大勾选数了;取消勾选则不做限制

    试试这样?

    2019-05-08
    有用 1
    回复
  • 祺爸💎
    祺爸💎
    2019-05-08

    要代码不如先开价

    2019-05-08
    有用
    回复
登录 后发表内容