【Element】el-select下拉选择器搜索选项,自定义搜索方法,结合后端接口远程搜索

这篇具有很好参考价值的文章主要介绍了【Element】el-select下拉选择器搜索选项,自定义搜索方法,结合后端接口远程搜索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

el-select搜索选项

  • 当我们有多个选项时,我们一般会使用下拉选择器el-select展示选项,选项不多的情况下,我们可以进行手动下拉选择。
  • 那当选项有100个,甚至1000个的时候,需要一个个找选项,手动下拉选择就太累了,这时候我们可以利用搜索功能快速查找选项

1. 本地搜索(label)

可以利用搜索功能快速查找选项

  • el-select添加filterable属性即可启用搜索功能。
  • 默认情况下,Select 会找出所有label属性包含输入值的选项。
<template>
  <el-select v-model="value" filterable placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }
    }
  }
</script>

【Element】el-select下拉选择器搜索选项,自定义搜索方法,结合后端接口远程搜索

  • 如果希望使用其他的搜索逻辑,可以通过传入一个filter-method来实现。filter-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。比如我们想用value来作为关键词搜索
<template>
  <el-select v-model="value" filterable placeholder="请选择" :filter-method="filterValue">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        list: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: '',
        options: [] // 筛选出来的选项
      }
    },
     mounted() {
    this.options = this.list;
  },
 	 methods: {
   		 filterValue(query) {
      		if (query !== "") {
        		this.options = this.list.filter((item) => {
          		// 这里是用的value选项筛选,默认是label
          		return item.value.toLowerCase().indexOf(query.toLowerCase()) > -1;
       			});
     		 } else {
       			 this.options = [];
      		 }
   		 }
 	 }
  }
</script>

这时候就是用的value来搜索了
【Element】el-select下拉选择器搜索选项,自定义搜索方法,结合后端接口远程搜索

2. 远程搜索(结合后端接口)

从服务器搜索数据,输入关键字进行查找

  • 为了启用远程搜索,需要将filterableremote设置为true,同时传入一个remote-method
  • remote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。
  • 需要注意的是,如果el-option是通过v-for指令渲染出来的,此时需要为el-option添加key属性,且其值需具有唯一性,比如此例中的item.value
<template>
  <el-select v-model="value" clearable
            filterable
            remote
            :remote-method="getDatas"
            :loading="loading" placeholder="请选择"  >
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        value: '',
        options: [], // 选项,从后端传递过来
        loading:false
      }
    },
    /* 获取选项列表 */
    getDatas(key) {
      this.loading = true;
      datasGetByKeywords({ // 封装好的后端接口
    
       keywords: key || "", // 关键字参数
      }).then((res) => {
        this.loading = false;
        this.options = res.data;
      });
    },
  }
</script>

这样我们的选项就是从后端服务器上获取的了,如何搜索就按后端接口规定的参数来文章来源地址https://www.toymoban.com/news/detail-463869.html

到了这里,关于【Element】el-select下拉选择器搜索选项,自定义搜索方法,结合后端接口远程搜索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2 - 详细介绍element UI中在el-select嵌套el-tree树形控件实现下拉选择树型结构数据的效果实例(组件封装)

    在项目上常用使用到 el-select 和 el-tree 组合实现,记录下两者结合的实现过程。(代码以及注释清晰明了,代码直接使用即可) 要求根据项目接口提供的数据,el-tree 里的数据是一次性返回来的,点击最后一层级时,请求接口,在点击层级下方追加数据追加的数据要显示勾

    2024年04月15日
    浏览(43)
  • elementUI --- el-select 下拉框 日历 级联选择

    element UI 组件库中的 select 选择器 中下拉列表的样式,在页面渲染的时候,总是渲染为仅次于body级别的div ,这样子覆盖样子会影响全局其他的select选择器下拉框样式,试图通过给el-select加父标签来覆盖,然而并没有卵用。 控制台看到的渲染结果: 解决方法: 通过 popper-cla

    2024年02月15日
    浏览(37)
  • 修改el-select和el-input样式;修改element-plus的下拉框el-select样式

    修改el-select样式 input如下 el-input clearable v-model=\\\"name\\\" placeholder=\\\"请输入\\\" class=\\\"input-with-select input_box\\\" style=\\\"width: 148px;margin: 0 40px;position: absolute;right:67px;\\\" /

    2024年02月13日
    浏览(29)
  • el-select与el-tree结合使用,实现select框下拉使用树形结构选择数据

    使用el-select与el-tree,实现如下效果, 代码如下:  注意点:搜索input框的代码一点放在option上面,不要放在option里面,否则一点击搜索框,下拉框就会收起来,不能使用。

    2024年02月13日
    浏览(37)
  • Vue3+element ui取消el-select下拉选边框

    需求是: 取消下拉选的边框,并且修改下箭头的图标,从其他博主那拼凑修改出来的,适用于我项目的方法,在此做个记录 修改前 修改后 css样式

    2024年02月15日
    浏览(47)
  • vue element 编辑下拉框el-select不能回显的问题

    本人的需求是点击表格里面的编辑按钮,把数据回显到弹窗内,其他的都能回显,但是就下拉框不能正常的回显 本人后端人员,有不对的地方,勿喷 这是因为点击编辑,收集到下拉框的value是一个数字导致的,传值应该是 ‘1’ 而不是 1 解决办法一:,给弹窗子组件传参的时

    2024年02月11日
    浏览(29)
  • vue拿到下拉框el-select的选择项的value和label

    1.单独一个下拉框时 2.el-table每行数据都有下拉框时   思路: 1.首先选择下拉框事件拿到选择的这行数据scope.row  2.其次去遍历绑定的下拉框数据,使用find()方法查找item.value === row.value  3.找到则返回对应的row.label   4.最后将label值以键值对形式加到row对象中 代码实例:

    2024年02月11日
    浏览(83)
  • 解决Vue中el-select第二次选择选项时才会显示上一个选项的响应结果

    今天在写一个选择器的时候出现一个问题 这个功能需求是:通过选择器选择不同的选项,点击查询按钮发送请求,并将响应结果放到一个div中用v-if控制是否显示。 看似简单的一个功能,却出现一个很搞笑的bug。在我选择一个选项点击查询,本应该显示结果的div没有显示出来

    2024年02月11日
    浏览(32)
  • element ui多选下拉组件(el-select)tag数量过多处理解决办法(二次封装)

    如下图所示,当标签选择过多时,会占用过多空间 期待效果:超过n行就自动省略,并可以进行展开收起,下图是实现后的效果图 实现分析: 通过extends继承el-select组件 将select源码的template部分粘贴到封装的组件中,以此来操作展开、收起等需要操作dom的部分 监听selected(已选择

    2024年02月13日
    浏览(32)
  • el-select值的回显问题:如何使element-ui的下拉框显示label值

    今天写前端又遇到个很神奇的事情,element的下拉框el-select出现了一点儿问题,回显的时候显示value的值,这个强迫症看来就很难受  我写的代码是这样的 查阅大量资料,突然发现一个简单的方法,那就是vue的v-bind的神奇之处,v-bind的简写是:冒号 所以解决方法就来了(敲重

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包