ElementUI框架 el-input和el-select组件失焦问题
el-input,el-select添加filterable属性后,如果都是打开一个弹窗页面,这两个组件的焦点事件并没有取消,就会出现如下问题(就是选择的下拉框会和弹窗同在一个z-index上,都是因为没有失焦引起的,Bug重现步骤:el-select添加filterable属性,选择值后,并打开弹窗,此时下拉款还没出现,当你在同浏览器切屏刷新任何一个页面时,再回来当前页面,这时下拉框会重新打开,出现了下图的Bug)
解决方案:
在组件上添加ref="select"方便获取组件,以及事件@visible-change="visibleChange"。1
添加方法:
//html: <el-form-item label="input输入框" prop="str1"> <el-input type="text" v-model.trim="addForm.str1" placeholder="输入内容" style="width:100%;" clearable @focus="selectTable" ref="input" //这里很重要 ></el-input> </el-form-item> <el-form-item label="下拉选择框" prop="str1"> <el-select v-model="addForm.str1" placeholder="请选择" filterable @change="selectTable" @visible-change="visibleChange" ref="select" //这里很重要 style="width:100%;" > <el-option v-for="item in accountTypelist" :key="item.id" :label="item.name" :value="item.id" ></el-option> </el-select> </el-form-item> //script: data(){ return{ addForm: { str1: "" }, accountTypelist: [ { id: 0, name: "选项0" }, { id: 1, name: "选项1" }, { id: 2, name: "选项2" }, { id: 3, name: "选项3" } ], } } methods: { selectTable() { // this.$refs.input.blur(); input加上这句 (记得在组件加上ref属性) this.editDialog = true; }, visibleChange(flag) { //el-select加上这个(记得在组件加上ref属性) if (flag) { this.$refs.select.focus(); } else { this.$refs.select.blur(); } } }
赞 (0)