【Vue】想要做一个带搜索框的下拉框?
想要一个这样的下拉框
可以用element做出来吗?
回答
<el-select v-model="value">
<el-input v-model="keyWord" v-on:input="myfilter"></el-input> <el-option v-for="(item,index) in arr" :key="index" :value="item.id" :label="item.label"></el-option>
</el-select>
arr:[{
id:1,
label:'qqq'
},{
id:2,
label:'www'
},{
id:3,
label:'eee'
}],
basearr:[{
id:1,
label:'qqq'
},{
id:2,
label:'www'
},{
id:3,
label:'eee'
}],
createFilter(queryString) {
return (restaurant) => {
if(restaurant.label !== undefined) {
return (restaurant.label.toLowerCase().indexOf(queryString.toLowerCase()) >= 0)
} else {
return (restaurant.indexOf(queryString) >= 0)
}
}
},
myfilter() {
let queryString = this.keyWord
let restaurants = this.basearr
let results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
this.arr = results
}
(el-select 是自带 filterable 属性的,也可以不用自己封装)
看了下element ui select
组件的源码,针对你的需求,目前element ui select
组件是无法满足你的需求的,不过你可以改造一下element ui select
组件的源码,又或者自己封装一个组件也是可以的。仿layui下拉框或许我写的这篇文章对你有一定的思路启示帮助。
如果非要用element得话 可以用input和select组合成 利用focus v-model 稍微改下样式就可以了
先试试用select远程搜索链接描述
以上是 【Vue】想要做一个带搜索框的下拉框? 的全部内容, 来源链接: utcz.com/a/82094.html