Vue element 下拉框 可输入可选择(无bug)
https://blog.csdn.net/sunshineTing2/article/details/108978675
背景: 需要一个可填可选的下拉框
当用户自定义输入时,自动添加“(其他)”后缀
效果如下:
<el-select
v-model="value"
placeholder="请选择"
clearable
filterable
@blur="selectBlur"
@clear="selectClear"
@change="selectChange"
>
<el-option
v-for="(item,index) in options"
:key="index"
:label="item.label"
:value="item.value" />
</el-select>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
data() {
return {
value: '',
options: [
{
value: '无保留意见',
label: '无保留意见'
}, {
value: '保留意见',
label: '保留意见'
}
],
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
methods: {
selectBlur(e) {
// 意见类型
if (e.target.value !== '') {
this.value = e.target.value + '(其他)';
this.$forceUpdate() // 强制更新
}
},
selectClear() {
this.value = ''
this.$forceUpdate()
},
selectChange(val) {
this.value = val
this.$forceUpdate()
},
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
注: 使用Vue开发时,在函数中改变了页面中的某个值,在函数中查看是修改成功了,但在页面中没有及时刷新改变后的值;
赋值完以后,执行下面这个方法 强制刷新数据
this.$forceUpdate()
- 1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)