vue elementUI el-select中 filter-method自定义搜索方法

本文详细介绍如何在el-select组件中使用filter-method属性实现筛选功能。包括基本应用示例、自定义传参方法等,帮助开发者更好地掌握组件的高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍:在el-select中写入filter-method属性;

1、基本应用:

   1)模板中加入filter-method属性及方法:

<el-select v-model="value" filterable placeholder="请选择0" filterable :filter-method="query">
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
      </el-option>
    </el-select>

2)  js中data部分:

data: () => ({
        
        options: [{     // 用于显示的数据
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: '',  // select 选中值
        oldOptions: []   // 保存后端原始数据

      }),

3)在created或者mounted中:(以下代码在created中使用)

 created() {
        this.init();
      }

4)在methods中实现:

 init() {
          this.oldOptions = JSON.parse(JSON.stringify(this.options));
        },
 query(value) {
          this.options = this.oldOptions.filter(item => item.label === value)
        }

2、如需要自定义传参:(在filter-method中改为: (value)=> query(value, ...),后面...为自定义传入的参数)

<el-select v-model="value" filterable placeholder="请选择0" filterable :filter-method="(value) => query(value, oldOptions)">
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
      </el-option>
    </el-select>

Element UI是一套基于Vue.js的UI组件库,它提供了丰富的可复用的组件,可以帮助开发者快速构建美观、易用的Web界面。其中,el-selectElement UI中的下拉选择框组件。 el-select组件具有多种功能和配置选项,其中filter-method是一个非常有用的属性。filter-method用于自定义下拉选择框的搜索过滤方法。通过设置filter-method属性,可以实现根据输入内容对下拉选项进行过滤,并只显示符合条件的选项。 使用filter-method属性时,需要传入一个函数作为过滤方法。这个函数接收两个参数:输入的搜索关键字和当前选项对象。在函数内部,可以根据自定义的逻辑判断当前选项是否符合搜索条件,并返回布尔值来决定是否显示该选项。 例如,可以通过以下方式使用filter-method属性: ```html <el-select v-model="selectedValue" filterable :filter-method="filterMethod"> <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value"></el-option> </el-select> ``` ```javascript data() { return { selectedValue: '', options: [ { value: 'option1', label: 'Option 1' }, { value: 'option2', label: 'Option 2' }, { value: 'option3', label: 'Option 3' } ] } }, methods: { filterMethod(query, option) { return option.label.toLowerCase().indexOf(query.toLowerCase()) > -1; } } ``` 上述代码中,filterMethod函数根据输入的搜索关键字query和当前选项的label属性进行匹配,如果label中包含了搜索关键字,则返回true,表示该选项符合搜索条件,将会显示在下拉列表中。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天府之绝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值