vue element 多选实现单选

5 篇文章 0 订阅

1,在项目中是用循环生成多选组,并实现单选。在实际渲染中 会将多个多选列看成一个多选,

 <div v-for=" item  in attributeList" :key="'sku'+item.name" class="sku-body">
        <div class="sku-items-left">{{item.name}}:</div>
        <el-checkbox-group class="sku-items-right" size="mini" v-model="checkedList"
                           @change="handleCheckedValuesChange">
          <el-checkbox :border="true" size="mini" @change="city.checked=!city.checked" class="sku-items-box"
                       v-for="(city,index) in item.detail" :checked="city.checked" :label="city" :key="'index'+city.id">
            {{city.attributeName}}
          </el-checkbox>
        </el-checkbox-group>
      </div>

其中将选中的值 :lable="city"   在选中时会获取到选中的对象,
  分析: 在每次点击选择时 每次只增加一个,而且新增的对象添加在选中列表的末尾(队列形式)(该需求中无全选要求),  在chang事件中可以拿到新增的那个对象(队列的末尾); 这样只要将新增的那个对象与之前的对象做比较,并修改相同的类的选中属性 :checked="city.checked"   其为false 就好;

 

   总结,对于多选列表实现单选,观察其选中数组对象列表新增为队列形式, 拿到新增的对象(队列末尾的一个值)与原来值做比较,如果有重复的修改重复的,并将其替换掉,如果没有重复的更新选中数组(添加拿到的队列中的末尾对象);    

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值