el-select 可搜索下拉框,选中选项后,希望立即失去焦点,收起键盘,执行其他逻辑

上一篇:el-select 可搜索下拉框 在ios、ipad 无法唤出键盘,造成无法输入

【效果图】:分组展示选项 =>【去界面操作体验】

el-select 可搜索下拉框,选中选项后,希望立即失去焦点,收起键盘,执行其他逻辑:我的是页面跳转

<el-select  @hook:mounted="removeReadOnly" @visible-change="removeReadOnly" 
				v-model="innerValue"
				filterable
				:remote="true"
				:likeQuery="false"
				@change="changeSelect"
				:clearable="clearable"
				:multiple="multiple"
				:remote-method="fetchOptions"
				size="small"
				popper-class="productGroupSelector"
				:placeholder="placeholder"
				ref="iosSelect"
			>

js代码:


        changeSelect(val) {
			console.log("选项变更值:"+val)
            if (this.multiple) {
                this.options.forEach(item => {
                    const arr = item.options.map(m => m.value);
                    item.isIndeterminate = arr.some(v => {
                        return val.some(s => s === v);
                    });
                    item.checked = arr.every(v => {
                        return val.some(s => s === v);
                    });
                    if (item.checked) {
                        item.isIndeterminate = false;
                    }
                });
                this.$emit('change', this.innerValue);
            } else {
                this.$emit('change', val);
            }
			
			// iPad 兼容:延迟 50ms 后失焦(确保键盘能正常关闭)
			setTimeout(() => {
			  const input = this.$refs.iosSelect?.$el?.querySelector('input');
			  input?.blur();
			}, 50);
		},

上一篇:el-select 可搜索下拉框 在ios、ipad 无法唤出键盘,造成无法输入

### el-select 下拉框点击后黑色样式问题解决方案 在 Vue 中使用 Element UI 的 `el-select` 组件,如果点击下拉框后出现黑色背景或其他异常样式问题,通常是由于以下原因导致的: - 样式冲突:可能是项目中其他全局样式或第三方库的样式与 `el-select` 的默认样式发生了冲突。 - 自定义样式未正确覆盖:即使设置了自定义样式,但可能由于作用域限制(如 `<style scoped>`)或优先级问题未能生效。 以下是解决该问题的具体方法: #### 方法一:检查并覆盖默认样式 确保通过正确的选择器覆盖 `el-select` 的默认样式。可以尝试以下代码: ```css /* 全局样式 */ .el-select-dropdown { background-color: #fff !important; /* 确保背景为白色 */ color: #606266 !important; /* 确保文字颜色正常 */ } /* 如果使用 scoped 样式,则需要使用 ::v-deep 深度选择器 */ <style scoped> ::v-deep .el-select-dropdown { background-color: #fff !important; color: #606266 !important; } </style> ``` #### 方法二:禁用 `popper-append-to-body` 当 `popper-append-to-body` 属性设置为 `true`(默认值)下拉框会被添加到 DOM 的 `body` 中,可能导致样式继承异常。可以通过将其设置为 `false` 来解决此问题[^2]。 ```vue <el-select v-model="value" :popper-append-to-body="false"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> ``` #### 方法三:检查全局样式污染 如果项目中引入了其他全局样式库(如 Bootstrap 或 Ant Design),可能会对 `el-select` 的默认样式造成干扰。建议排查是否存在类似以下的样式规则: ```css /* 示例:可能的冲突样式 */ .dropdown-menu { background-color: black !important; } ``` 如果存在类似的样式规则,可以通过提高选择器优先级来覆盖这些规则。 #### 方法四:使用 `popper-class` 自定义类名 通过 `popper-class` 属性为下拉框指定一个自定义类名,并为其单独定义样式[^3]。 ```vue <el-select v-model="value" popper-class="custom-dropdown"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> ``` ```css .custom-dropdown { background-color: #fff !important; color: #606266 !important; } ``` #### 方法五:调试工具定位问题 如果上述方法均无效,可以使用浏览器的开发者工具(如 Chrome DevTools)定位具体的样式来源。右键点击出现问题的元素,查看其应用的样式规则,并根据实际情况调整。 --- ### 注意事项 1. 如果使用了 `<style scoped>`,需要结合 `::v-deep` 或 `/deep/` 深度选择器来覆盖子组件样式[^1]。 2. 避免直接修改 Element UI 的源码样式,推荐通过自定义类名或属性进行调整。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值