https://www.cnblogs.com/ahalvxiaobu/p/16268019.html
今天用了element的el-select, 选中内容后回车,需要自动搜索数据, 但是遇到的问题是,回车时下拉框自动弹出来了。
看了element-ui的官网,有个methods方法,可以失去焦点时,隐藏下拉框,但是没怎么用过methods,百度下原来时加个ref,用this.$refs调用。
<el-form-item label="状态" prop="status" style="margin-right: 30px;">
<el-select ref="elSelect" v-model="formInline.status" filterable clearable placeholder="请选择状态">
<el-option
v-for="item in statusList"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select>
created() {
// 第一次就调用回车事件
this.enterSearch()
},
enterSearch() {
document.onkeydown = e => {
if (e.key === 'Enter') {
// 回车后执行搜索方法
this.getData()
e.target.blur()
// 当回车时, 隐藏下拉框的弹框
this.$refs.elSelect.blur()
}
}
},
我的例子
<template>
<div class="swiper-container">
<!-- <div class="swiper-wrapper">
<div class="swiper-slide" v-for="(slide, index) in skuImageList" :key="slide.id">
<img :src="slide.imgUrl">
</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div> -->
<!-- ElementUI写法 -->
<el-carousel ref="elcarousel" :autoplay="false" type="card" height="50px" arrow="always" @change="change">
<el-carousel-item v-for="(slide, index) in skuImageList" :key="slide.id" >
<img :src="slide.imgUrl" height="50px" style="margin-left: 70px;" @click="changeCurrentIndex(index)">
</el-carousel-item>
</el-carousel>
<button @click="preee">aaa</button>
</div>
</template>
<script>
import Swiper from 'swiper'
export default {
name: "ImageList",
props:['skuImageList',],
methods: {
changeCurrentIndex(index){
//通知兄弟组件:当前的索引值为几
this.$bus.$emit('getIndex',index)
},
change(newIndex,oldIndex){
// console.log(newIndex,oldIndex)
this.changeCurrentIndex(newIndex)
},
preee(){
this.$refs.elcarousel.next()
}
},
}
</script>
<style lang="less" scoped>
.swiper-container {
height: 56px;
width: 412px;
box-sizing: border-box;
padding: 0 12px;
.swiper-slide {
width: 56px;
height: 56px;
img {
width: 100%;
height: 100%;
border: 1px solid #ccc;
padding: 2px;
width: 50px;
height: 50px;
display: block;
&.active {
border: 2px solid #f60;
padding: 1px;
}
&:hover {
border: 2px solid #f60;
padding: 1px;
}
}
}
.swiper-button-next {
left: auto;
right: 0;
}
.swiper-button-prev {
left: 0;
right: auto;
}
.swiper-button-next,
.swiper-button-prev {
box-sizing: border-box;
width: 12px;
height: 56px;
background: rgb(235, 235, 235);
border: 1px solid rgb(204, 204, 204);
top: 0;
margin-top: 0;
&::after {
font-size: 12px;
}
}
}
</style>