Vue element中select下拉框支持手输搜索也支持下拉选择

需要一个可以手输也可以选择的下拉框

代码如下:

filterable 是可以搜索的

<el-select v-model="table.queryParams.prequalificationUserId" 
placeholder="请选择预审员" clearable 
filterable
@blur="selectBlur"
@clear="selectClear"
@change="selectChange">
<el-option v-for="item in prequalificationList" :key="item.id" :label="item.name"
           :value="item.id"></el-option>
</el-select>

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()
},

注: 使用Vue开发时,在函数中改变了页面中的某个值,在函数中查看是修改成功了,但在页面中没有及时刷新改变后的值;

赋值成功后也可以使用以下方法进行强制刷新:

this.$forceUpdate()

效果如下图所示:
在这里插入图片描述

以上就是问题的解决方案,具体详细的内容可以参考以下博客,讲解的详细
https://blog.csdn.net/sunshineTing2/article/details/108978675

Element UISelect组件,如果下拉选项列表(popper)超出了其容器(通常是弹出层),你可以通过调整样式或者配置项来解决这个问题。以下是几种常见的方式: 1. **设置`el-select`的大小**: - 可以尝试修改`.el-select-dropdown`的宽度,使其适应你的内容。例如,添加自定义CSS规则: ```css .el-select-dropdown { max-width: 200px; /* 或者根据需要设定合适的值 */ } ``` 2. **动态调整`offset`属性**: - 使用`ref`获取到Select元素,并监听`showPopper`事件,在显示时检查是否溢出,然后调整`position`的`offset`值。例如: ```javascript <el-select ref="selectRef" ...></el-select> // 在Vue实例 mounted() { this.$refs.selectRef.showPopper = () => { const el = this.$refs.selectRef.popper; if (el && el.getBoundingClientRect().width > document.documentElement.clientWidth) { // 调整偏移量防止溢出 el.style.top = 'initial'; // 禁止默认的顶部偏移 el.style.left = '-15px'; // 或者根据需要适当减小左侧偏移 } }; } ``` 3. **使用`v-if`控制弹出层的显示**: - 如果下拉列表很长并且只在特定条件下显示,可以考虑在用户交互时动态创建和隐藏。 4. **限制`max-height`**: - 添加一个最大高度限制,如`max-height: 300px; overflow-y: auto;`,这可以帮助控制滚动,避免完全超出屏幕。 记得在实际应用测试效果,因为最佳实践可能会因项目需求、浏览器兼容性和布局而变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值