ElementUI框架中el-select组件在按回车时,如何隐藏下拉菜单,并触发键盘事件

场景:

  1. 根据产品需求,下拉菜单在按下回车后进行搜索
  2. 判断页面所需的筛选项是否为空,如果为空,按下回车,不执行查询
  3. 按下回车,如何让下拉菜单隐藏(或者失去焦点,因为下拉项要显示的前提是获取焦点)

源码:

<el-col :md="8" :sm="12" :xs="24">
	<el-form-item label="出差城市:" style="margin-bottom: -18px;">
		<el-col :span="11">
			<el-form-item prop="provinceId">
				<el-select
					style="width: 100%;"
					v-model="form.provinceId"
					placeholder="出差省份"
					ref="selectProvinces"
					@visible-change="isShowSelectOptions"
					@change="changeProvinces"
				>
					<el-option
						v-for="item in provinces"
						:key="item.id"
						:label="item.districtName"
						:value="item.id"
					></el-option>
				</el-select>
			</el-form-item>
		</el-col>
		<el-col class="line" :span="2" style="text-align: center">-</el-col>
		<el-col :span="11">
			<el-form-item prop="electionCity">
				<el-select
					style="width: 100%;"
					v-model="form.cityId"
					placeholder="出差城市"
					ref="selectCitys"
					@visible-change="isShowSelectOptions"
				>
					<el-option
						v-for="item in citys"
						:key="item.districtCode"
						:label="item.districtName"
						:value="item.id"
					></el-option>
				</el-select>
			</el-form-item>
		</el-col>
	</el-form-item>
</el-col>
created() {
	……
	// 全局添加事件监听
	window.addEventListener('keyup', this.handleSearch)
},
methods: {
	// 是否显示下拉框
	isShowSelectOptions(isShowSelectOptions){
		if(!isShowSelectOptions) this.$refs.selectProvinces.blur();
		if(!isShowSelectOptions) this.$refs.selectCitys.blur();
	},

	// 条件查询
	handleSearch(e) {
		let condition = e.keyCode == 13 && (this.form.provinceId || this.form.cityId);
		if(condition){
			this.pageIndex = 1;
			this.selectLoading = true;
			let beginRequestDate = this.form.beginRequestDate ? formatDate(new Date(this.form.beginRequestDate)) : '';
			let endRequestDate = this.form.endRequestDate ? formatDate(new Date(this.form.endRequestDate)) : '';
			let beginStartDate = this.form.beginStartDate ? formatDate(new Date(this.form.beginStartDate)) : '';
			let endStartDate = this.form.endStartDate ? formatDate(new Date(this.form.endStartDate)) : '';
			let provinceId = this.form.provinceId;
			let cityId = this.form.cityId;
			let params1 = {
				pageNo: this.pageIndex, //当前页
				pageSize: 10, //每页显示条数
				approvalState: this.approvalState, //审核状态
				employeeId: this.userId,
				beginRequestDate,
				endRequestDate,
				beginStartDate,
				endStartDate,
				provinceId,
				cityId,
				orderBy: 'request_date'
			};
			// 执行查询函数
			this.getElectionList(params1);
		}
	}
}

3. 重要函数:

  1. @visible-change=“isShowSelectOptions”
    在这里插入图片描述

如果对您有帮助,点个赞收藏一下呗!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
el-select 是一个基于 Element UI 的下选择组件,它提供了丰富的功能和选项来满足不同的需求。在实践,你可以按照以下步骤来使用 el-select 组件: 1. 安装 Element UI:首先,你需要在你的项目安装 Element UI。可以通过 npm 或者 yarn 来安装,具体的安装方式可以参考 Element UI 的官方文档。 2. 引入 el-select 组件:在你需要使用 el-select 的页面或组件,引入 el-select 组件。可以使用 import 语句将 el-select 组件引入到你的代码。 3. 使用 el-select 组件:在模板使用 el-select 组件,并设置相应的属性和事件。例如,你可以设置 options 属性来定义下选项的列表,设置 v-model 属性来绑定选的值,设置 placeholder 属性来显示默认的提示文字等。 4. 处理选事件el-select 组件提供了 change 事件,可以在选某个选项触发事件。你可以在该事件的处理函数获取选的值,并进行相应的操作。 下面是一个简单的示例代码: ``` <template> <el-select v-model="selectedValue" placeholder="请选择"> <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value"></el-option> </el-select> </template> <script> import { ElSelect, ElOption } from 'element-ui'; export default { components: { ElSelect, ElOption }, data() { return { selectedValue: '', options: [ { label: '选项1', value: 'option1' }, { label: '选项2', value: 'option2' }, { label: '选项3', value: 'option3' } ] }; }, methods: { handleSelectChange(value) { console.log('选的值:', value); // 处理选事件的逻辑 } } }; </script> ``` 以上是一个简单的 el-select 的实践示例,你可以根据自己的需求进行相应的修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值