Element ui 下拉多选时新增一个选择所有的选项


Posted in Javascript onAugust 21, 2019

项目里经常会用到,在一个多选下拉框里新增一个选择所有的选项,例如:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" rel="external nofollow" rel="external nofollow" >
  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
  <div id="app">
    <el-form>
      <el-form-item>
        <el-select placeholder="请选择活动区域" multiple v-model="citys">
           <el-option v-for="item in cities" :label="item.label" :value="item.value" :key="item.value"></el-option>
        </el-select>
       </el-form-item>
     </el-form>
  </div>
  <script>
    new Vue({
      el:"#app",
      data:{
        cities: [
          {value: 'Beijing',label: '北京'}, 
          {value: 'Shanghai',label: '上海'}, 
          {value: 'Nanjing',label: '南京'}, 
          {value: 'Chengdu',label: '成都'}, 
          {value: 'Shenzhen',label: '深圳'}, 
          {value: 'Guangzhou',label: '广州'}
        ],
        citys:[]
      }
    })
  </script>
</body>
</html>

渲染如下:

Element ui 下拉多选时新增一个选择所有的选项

此时可以多选,如果想要选择所有选项时,得一个个去点击,这样不是很方便,我们可以在下拉框里新增一个选择所有的选项,通过watch用几行代码就可以实现与其它选项的互斥来实现一键多选,如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" rel="external nofollow" rel="external nofollow" >
  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
  <div id="app">
    <el-form>
      <el-form-item>
        <el-select placeholder="请选择活动区域" multiple v-model="citys">
          <el-option label="选择所有" value="all"></el-option>
           <el-option v-for="item in cities" :label="item.label" :value="item.value" :key="item.value"></el-option>
        </el-select>
       </el-form-item>
     </el-form>
  </div>
  <script>
    new Vue({
      el:"#app",
      data:{
        cities: [
          {value: 'Beijing',label: '北京'}, 
          {value: 'Shanghai',label: '上海'}, 
          {value: 'Nanjing',label: '南京'}, 
          {value: 'Chengdu',label: '成都'}, 
          {value: 'Shenzhen',label: '深圳'}, 
          {value: 'Guangzhou',label: '广州'}
        ],
        citys:[]
      },
      watch:{
        citys:function(val,oldval){
          if(val.indexOf('all')!=-1 && oldval.indexOf('all')==-1 && val.length>1){           //如果新的选择里有勾选了选择所有选择所有 则 只直线勾选所有整个选项
            this.citys=['all'];
          }else if(index = val.indexOf('all')!=-1 && oldval.indexOf('all')!=-1 && val.length>1){    //如果操作前有勾选了选择所有且当前也选中了勾选所有且勾选数量大于1 则移除掉勾选所有
            this.citys.splice(val.indexOf('all'),1)
          }
        }
      }
    })
  </script>
</body>
</html>

这样就可以互斥了,我们选择北京和上海时,选择器如下:

Element ui 下拉多选时新增一个选择所有的选项

点击选择所有时,如下:

Element ui 下拉多选时新增一个选择所有的选项

然后再点击其它选项,选择所有就会取消勾选了,例如选择深圳:

Element ui 下拉多选时新增一个选择所有的选项

这样实现了选择所有和其它选择项的互斥,而其它选择又可以多选。

总结

以上所述是小编给大家介绍的Element ui 下拉多选时新增一个选择所有的选项,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js精度溢出解决方案
Dec 02 Javascript
JS中Iframe之间传值的方法
Mar 11 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
一篇文章掌握RequireJS常用知识
Jan 26 Javascript
js自调用匿名函数的三种写法(推荐)
Aug 19 Javascript
Angular2中select用法之设置默认值与事件详解
May 07 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
基于滚动条位置判断的简单实例
Dec 14 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
Apr 12 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 Javascript
js时间转换毫秒的实例代码
Aug 21 #Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 #Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 #jQuery
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 #Javascript
Vue仿微信app页面跳转动画效果
Aug 21 #Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 #Javascript
深入理解Vue keep-alive及实践总结
Aug 21 #Javascript
You might like
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
JS画线(实例代码)
2013/11/20 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
Less 安装及基本用法
2018/05/05 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
Linux CentOS7下安装python3 的方法
2018/01/21 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Python continue语句实例用法
2020/02/06 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
电气专业应届生求职信
2013/11/01 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年统计工作总结
2014/11/21 职场文书
捐款仪式主持词
2015/07/04 职场文书
仓库管理制度范本
2015/08/04 职场文书