返回顶部
首页 > 资讯 > 精选 >element-plus下拉框怎么实现全选
  • 348
分享到

element-plus下拉框怎么实现全选

2023-06-30 16:06:33 348人浏览 独家记忆
摘要

这篇文章主要介绍“element-plus下拉框怎么实现全选”,在日常操作中,相信很多人在element-plus下拉框怎么实现全选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”element-plus下拉框

这篇文章主要介绍“element-plus下拉框怎么实现全选”,在日常操作中,相信很多人在element-plus下拉框怎么实现全选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”element-plus下拉框怎么实现全选”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

下拉框的简单使用

使用方法还是比较简单的

<el-select v-model="user.name" placeholder="请选择">    <el-option v-for="item in nameList" :key="item" :label="item" :value="item">    </el-option>  </el-select>

首先需要使用到 el-select el-option el-select就是下拉框,所以需要使用 v-model双向绑定数据。而 el-option就是下拉框的选项。

import { Reactive, toRefs } from "Vue";const state = reactive({  nameList: ["clz", "czh", "ccc"],  user: {    name: "",  },});const { nameList, user } = toRefs(state);

element-plus下拉框怎么实现全选

全选互斥

需求:下拉框选项中有全选以及其他项,需要实现点击全选后不能选择其他项,选中了其他项同样不能选择全选。

下拉框多选

先来简单了解下下拉框的多选。

理论上来说,是只需要给 el-select添加上 multiple就能实现多选,但是效果不太好。选中的会挤在一起。

element-plus下拉框怎么实现全选

这个时候,我们可以添加 collapse-tags属性,这样子,这样子就只会显示一个选项,没显示的以数量的形式在后面。

element-plus下拉框怎么实现全选

再添加 collapse-tags-tooltip属性,还能实现,悬浮在 +X上方时,显示全部选中的选项。

element-plus下拉框怎么实现全选

代码:

<el-select  v-model="fORM.ages"  placeholder="请选择"  multiple  collapse-tags  collapse-tags-tooltip>  <el-option    v-for="item in ageList"    :key="item"    :label="item"    :value="item"  ></el-option></el-select>
import { reactive, toRefs } from "vue";const state = reactive({  ageList: ["全部", 19, 20, 21, 22],  form: {    ages: [],  },});const { ageList, form } = toRefs(state);

全选互斥的实现

这个主要就是依靠 disabled属性来实现,只不过属性值变成一个返回 boolean值的函数了。

  <el-select    v-model="form.ages"    placeholder="请选择"    multiple    collapse-tags    collapse-tags-tooltip  >    <el-option      v-for="item in ageList"      :key="item"      :label="item"      :value="item"      :disabled="checkAge"    ></el-option>  </el-select>
const checkAge = () => {  return true;};

element-plus下拉框怎么实现全选

可以看到,当绑定的 checkAge返回 true的时候,全部选项都不能选了。

明白原理后,我们便只需要理清思路就行了。

首先,我们绑定的 checkAge应该要把选中项( item)作为参数传给 checkAge,这样子才能得到选中的项。

接着,就是思路了。我们禁选的情况就两种:

  • 选择了全部,此时禁选非全部的选项

  • 选择了非全部的选项,此时禁选全部

也就是说,只有这两个情况返回 true,其他时候返回 false

const checkAge = (item) => {  if (form.value.ages.includes("全部") && item !== "全部") {    // 选择了`全部`,此时禁选`非全部的选项`    return true;  } else if (!form.value.ages.includes("全部") && item === "全部") {    // 选择了`非全部的选项`,此时`禁选全部`    return true;  }  return false;};

是不是很简单,但是还没完,上面那样子还会有小问题。

element-plus下拉框怎么实现全选

我们什么都没有选择的时候,全部选项不能选。这是因为上面选择非全部选项时的判断,写成了没有选择全部的时候,所以一开始确实没有选择全部,那么就不能选择了。所以在一开始应该判断有没有已经选中的,如果没有,就返回`` false`

const checkAge = (item) => {  if (form.value.ages.length === 0) {    return false;  }  if (form.value.ages.includes("全部") && item !== "全部") {    return true;  } else if (!form.value.ages.includes("全部") && item === "全部") {    return true;  }  return false;};

element-plus下拉框怎么实现全选

多个下拉框互斥

多个下拉框不能同时选择同样的选项。

  <el-select v-model="hobbys.hobby1" placeholder="请选择爱好">    <el-option      v-for="item in hobbyList"      :key="item"      :label="item"      :value="item"      :disabled="checkHobby(item)"    ></el-option>  </el-select>

有三个上面的下拉框,依次是 hobby1 hobby2 hobby3

import { reactive, toRefs } from "vue";const state = reactive({  hobbyList: ["听歌", "动漫", "前端"],  hobbys: {    hobby1: "",    hobby2: "",    hobby3: "",  },});const { hobbyList, hobbys } = toRefs(state);

老样子,通过给 disabled属性绑定方法,把选中的值传过去。

多个下拉框互斥的实现就比较简单了,只需要遍历选中的值,是不是等于要选的值,等于的话就禁止选择(return true)。如果能遍历完,即该选项没有被其他下拉框选中过,那么就能选择( return false)。

const checkHobby = (item) => {  for (const hobbyKey in hobbys.value) {    // 如果已经有选中过该选项的下拉框,则禁止再次选择    if (item === hobbys.value[hobbyKey]) {      return true;    }  }  return false;};

element-plus下拉框怎么实现全选

一般全选的实现

什么是一般全选?其实只是为了区分上面的全选互斥。就是常见的点击全选复选框,就会选中全部选项。

<el-select  v-model="form.ages"  placeholder="请选择"  multiple  collapse-tags  collapse-tags-tooltip>  <el-checkbox v-model="checked" />全选  <el-option    v-for="item in ageList"    :key="item"    :label="item"    :value="item"  ></el-option></el-select>
import { reactive, toRefs } from "vue";const state = reactive({  ageList: [19, 20, 21, 22],  form: {    ages: [],  },  checked: false,});const { ageList, form, checked } = toRefs(state);

element-plus下拉框怎么实现全选

这个时候,全选和下面的选项是互不关联的,所以我们可以通过添加 change事件,但复选框状态变化时,去修改下面的选项的选中与否。

<el-checkbox v-model="checked" @change="handleCheckAllChange" />全选
const handleCheckAllChange = () => {  if (checked.value) {    form.value.ages = ageList.value;  } else {    form.value.ages = [];  }};

到这一步的时候,我们就能够做到点击全选复选框,能同时修改下面选项的选中状态了,但是,还不能实现选中下面全部选项时,同时修改全选复选框为选中状态。

可以通过添加侦听器,侦听选中结果,如果发生变化,就会触发侦听器,并根据选中结果的长度和选项总长度对比。

watch(  () => form.value.ages,  (newValue) => {    checked.value = newValue.length === ageList.value.length;  });

element-plus下拉框怎么实现全选

如果想要加个中间态的话,就需要用到 element-plus复选框的 indeterminate属性。

这时候,复选框的状态不再是只依靠 checked了,而是 indeterminate v-model同时作用。

  • indeterminate falsev-model true时,状态为 &radic;

  • indeterminate falsev-model false时,状态为空

  • indeterminate true时,状态为 -

所以要实现中间态,只需要当选中的选项的个数比总选项的个数少,且选中的选项的个数不为0时, indeterminate的值为 true即可。

<el-checkbox  v-model="checked"  :indeterminate="    form.ages.length < ageList.length && form.ages.length !== 0  "  @change="handleCheckAllChange"/>全选

到此,关于“element-plus下拉框怎么实现全选”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: element-plus下拉框怎么实现全选

本文链接: https://lsjlt.com/news/330176.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • element-plus下拉框怎么实现全选
    这篇文章主要介绍“element-plus下拉框怎么实现全选”,在日常操作中,相信很多人在element-plus下拉框怎么实现全选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”element-plus下拉框...
    99+
    2023-06-30
  • element-plus下拉框实现全选的示例代码
    目录前言下拉框的简单使用全选互斥下拉框多选全选互斥的实现多个下拉框互斥一般全选的实现前言 实习确实能学到不少东西,但是学到的东西果然还是需要沉淀下来,不然后面立马又忘记了。 下拉框的...
    99+
    2024-04-02
  • PHP中怎么实现下拉框选择
    这篇文章将为大家详细讲解有关PHP中怎么实现下拉框选择,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。< php  //提交下拉框;  //直接饱触发onc...
    99+
    2023-06-17
  • ASP.NET MVC实现多选下拉框
    借助Chosen Plugin可以实现多选下拉框。 选择多项: 设置选项数量,比如设置最多允许2个选项: Model模块 考虑到多选下拉<select multiple=&...
    99+
    2022-11-13
    ASP.NET MVC 多选下拉框
  • ASP.NET MVC实现下拉框多选
    我们知道,在ASP.NET MVC中实现多选Select的话,使用Html.ListBoxFor或Html.ListBox方法就可以。在实际应用中,到底该如何设计View ...
    99+
    2024-04-02
  • element ui表格实现下拉筛选功能
    本文实例为大家分享了element ui表格实现下拉筛选的具体代码,供大家参考,具体内容如下 1、default-sort中prop传入要排序的字段(接口返回或自己定义的数据)、or...
    99+
    2024-04-02
  • Flutter怎么实现自定义下拉选择框
    这篇“Flutter怎么实现自定义下拉选择框”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Flutter怎么实现自定义下拉选...
    99+
    2023-06-30
  • JavaScript实现下拉列表选择框
    本文实例为大家分享了JavaScript实现下拉列表选择框的具体代码,供大家参考,具体内容如下 创建一个页面 ** 两个下拉选择框     -...
    99+
    2024-04-02
  • HTML的下拉框怎么实现
    这篇文章主要介绍“HTML的下拉框怎么实现”,在日常操作中,相信很多人在HTML的下拉框怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML的下拉框怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-27
  • vue-element的select下拉框赋值实例
    目录vue-element的select下拉框赋值当返回值是对象数组的时候当返回值是字符串数组的时候vue+elementUi select框赋值后无法选值body结构赋值在chan...
    99+
    2024-04-02
  • Html单选框,复选框和下拉框怎么用
    本篇内容主要讲解“Html单选框,复选框和下拉框怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Html单选框,复选框和下拉框怎么用”吧!单选框:type=...
    99+
    2024-04-02
  • element ui表格如何实现下拉筛选功能
    这篇文章主要讲解了“element ui表格如何实现下拉筛选功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“element ui表格如何实现下拉筛选功能”吧!default-sort中pr...
    99+
    2023-06-25
  • jquery实现户籍地选择下拉框
    利用jquery实现户籍地选择下拉框的具体代码,供大家参考,具体内容如下 data.js var data = [{ provname: '浙江省', ...
    99+
    2024-04-02
  • 使用jquery怎么实现户籍地选择下拉框
    今天就跟大家聊聊有关使用jquery怎么实现户籍地选择下拉框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。data.jsvar data = [{&nb...
    99+
    2023-06-15
  • 怎么用php实现下拉框选择日期功能
    本文小编为大家详细介绍“怎么用php实现下拉框选择日期功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用php实现下拉框选择日期功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。HTML基础概念首先了解如...
    99+
    2023-07-05
  • Vue级联下拉框怎么实现
    今天小编给大家分享一下Vue级联下拉框怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2024-04-02
  • AngularJS怎么实现多级下拉框
    本篇内容主要讲解“AngularJS怎么实现多级下拉框”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“AngularJS怎么实现多级下拉框”吧!具体代码如下<div ng-app=...
    99+
    2023-06-29
  • 怎么用python+selenium实现下拉框
    这篇文章主要介绍“怎么用python+selenium实现下拉框”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python+selenium实现下拉框”文章能帮助大家解决问题。基本脚手架代码:...
    99+
    2023-06-29
  • EasyUI如何实现下拉框多选功能
    这篇文章给大家分享的是有关EasyUI如何实现下拉框多选功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图:这个没什么说的,直接引入css和js文件和图片,调用js即可。下...
    99+
    2024-04-02
  • 微信小程序实现下拉选项框
    本文实例为大家分享了微信小程序实现下拉选项框的具体代码,供大家参考,具体内容如下 效果图 test.js   data: {     shows: false, //控制下拉列表...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作