使用element-UI框架的使用,我們經常使用el-select下拉框,很多時候還需要使用可搜索的下拉框,然后elementUI官網的實例中只是提了一下filter-method可以自定義搜索方法,但是卻沒有詳細介紹怎么用,這里簡單介紹一下用法,希望對大家有點幫助
在el-select中加入filterable屬性,就開啟了搜索功能,然后我們用:filter-method="dataFilter"可以自定義一個搜索篩選條件,在這里來寫我們自己的邏輯代碼
注意篩選的時候首先要把輸入的值賦值給下拉框綁定的變量,否則會篩選會出現問題,代碼在下面,自己看一下,不難
然后放示例代碼
<template> <section class="p-10"> <el-select v-model="value" placeholder="請選擇" filterable :filter-method="dataFilter"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </section> </template> <script> export default { data() { return { optionsCopy: [{ value: '1', label: 'meat' }, { value: '2', label: 'drink' }, { value: '3', label: 'food' }, { value: '4', label: '龍須面' }, { value: '5', label: '北京烤鴨' }], options: [{ value: '1', label: 'meat' }, { value: '2', label: 'drink' }, { value: '3', label: 'food' }, { value: '4', label: '龍須面' }, { value: '5', label: '北京烤鴨' }], value: '' }; }, methods: { dataFilter(val) { this.value = val; if (val) { //val存在 this.options = this.optionsCopy.filter((item) => { if (!!~item.label.indexOf(val) || !!~item.label.toUpperCase().indexOf(val.toUpperCase())) { return true } }) } else { //val為空時,還原數組 this.options = this.optionsCopy; } } } }; </script>
效果圖
嗯,就醬~~