mpvue中限制多選框最多只能選兩項


每次點擊的時候判斷多選框選中的個數 如果已經選中兩個  將所有未選中的項禁用

<template>

  <checkbox-group class="radio-group" @change="checkChange">
    <checkbox class="checkbox" :value='item.id' v-for="item in treatment" :key="item" :disabled='isDisabled[index]'>{{item.name}}</checkbox>
  </checkbox-group>
</template>
import Vue from 'vue'
export default {
  data () {
    return {
      personChange: [],
      isDisabled: [],
      checkId: []
    }
  },
  methods:{
    checkChange (e) {
      this.personChance = e.target.value
      for (let i = 0; i < this.checkId.length; i++) {
        if (e.target.value.length >= 2 && !e.target.value.includes(this.checkId[i].toString())) {
          Vue.set(this.isDisabled, i, true)
        } else if (e.target.value.length < 2) {
          Vue.set(this.isDisabled, i, false)
        }
      }
    }
  },
  onLoad(){
    wx.request({
      url: '',
      data: {},
      success (res) {
        console.log(res)
        that.treatment = res.data.data
        let isDisabled = []
        let checkId = []
        for (let i = 0; i < res.data.data.length; i++) {
          isDisabled.push(false)
          checkId.push(res.data.data[i].id)
        }
        that.isDisabled = isDisabled
        that.checkId = checkId
      }
    })
  }
},
<style lang="wxss">
label.checkbox {
  padding-left: 20rpx;
}
checkbox .wx-checkbox-input{
  width: 22rpx;
  height: 22rpx;
}

checkbox .wx-checkbox-input.wx-checkbox-input-checked{
  border: 1rpx solid transparent;
  background-color: #da2728;
}
 checkbox .wx-checkbox-input.wx-checkbox-input-checked::before{
  width: 22rpx;
  height: 22rpx;
  line-height: 22rpx;
  text-align: center;
  font-size:22rpx;
  color:#fff;
  background: transparent;
  transform: translate(-50%, -50%) scale(1);
  -webkit-transform: translate(-50%, -50%) scale(1);
}
</style>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM