ElementUI的el-checkbox-group插件,动态禁用el-checkbox项

最近项目需要一个动态禁用el-checkbox选项的功能,已经被选择过的项需要在“批量新增”的弹窗中禁用(禁用掉已经在列表中的“西安工厂”)


image.png

Element中只提供了

<el-checkbox-group v-model="checkboxGroup3" size="small">
  <el-checkbox-button v-for="city in cities" :label="city" :disabled="city === '北京'" :key="city">{{city}}</el-checkbox-button>
</el-checkbox-group>

这里使用ES6的语法includes(),把已选择的列表id放入数组disabledStores中,其中store是为el-checkbox绑定数据的storeOptions中的值,store.id是数组中值的id,代码如下:

:disabled="disabledStores.includes(store.id)"

完整代码如下:

<el-checkbox-group v-model="checkedStores" @change="checkedStoresChange">
    <el-checkbox  v-for="store in storeOptions"  :label="store" :key="store.id" :disabled="disabledStores.includes(store.id)" >{{store.name}}</el-checkbox>
</el-checkbox-group>

就这样,可以把已经添加到列表的值id,push进数组disabledStores中,动态禁用批量操作中checkbox多选框,防止数据被覆盖!

(注释:在ES5,Array已经提供了indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方面是没问题,就是不够语义化。另一个问题是不能判断是否有NaN的元素。)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组:相同类型元素的集合 定义: 初始化: 使用: 注意:不要越界运算符 [ ]: a[b] ==> *(a+b...
    静倚晴窗笑此生阅读 391评论 0 1
  • 1,js数组与字符串的相互转换数组转字符串:arr = [1234];arr.join('-') //'1-2-3...
    穆熙沐阅读 814评论 0 0
  • 神奇的下拉菜单 越是碎片化时代,越需要系统性学习 一、基本用法 1、基本用法 1)手工录入 先手工输入,再按住Al...
    文瑜_19d3阅读 211评论 0 0
  • 对不起,请允许我自私一次,以后所有群的早报我将不再做推送,待我发现更加有趣的事物再去推送。 初衷 每天早晨在群里推...
    雁点阅读 510评论 13 5
  • 开学季,军训进行时。正好楼上住着大一的新生,楼上楼下的,见面的概率就高了,其中有几个让我印象挺深刻的。 她们总是秤...
    瓦塔熹阅读 174评论 0 0