1.问题描述
现在客户提出需求,需要在select输入框模糊搜索时,将输入的字母默认为大写,
2.解决方法
<el-select
v-model="demo"
placeholder="请选择"
:filter-method="test"
filterable
id="build"
>
<el-option
v-for="item in list"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
data: {
list: [
{ label: "A", value: 1 },
{ label: "B", value: 2 },
{ label: "C", value: 3 },
{ label: "D", value: 4 },
],
lsitCopy: [
{ label: "A", value: 1 },
{ label: "B", value: 2 },
{ label: "C", value: 3 },
{ label: "D", value: 4 },
],
demo: "",
},
test(a) {
let build = document.getElementById("build");
build.value = a.toUpperCase();
if (a) {
//a存在
this.list = this.lsitCopy.filter((item) => {
if (
!!~item.label.indexOf(a) ||
!!~item.label.toUpperCase().indexOf(a.toUpperCase())
) {
return true;
}
});
} else {
this.list = this.lsitCopy;
}
},
3.效果如下