解决vue elementUI 使用el-select 时 change事件的触发问题


Posted in Vue.js onNovember 17, 2020

如下所示:

<el-select v-model="level" size="mini" placeholder="请选择" :change="selectChange()">
 <el-option v-for="item in select" :key="item.value" :label="item.label" :value="item.value"></el-option>
 </el-select>

我们需要的是选择之后才触发,但是这样写你会发现,页面初始化的时候会触发多次,选择之后又会触发多次,原因是我们用错了标签,应该用 @change="selectChange()

<el-select v-model="level" size="mini" placeholder="请选择" @change="selectChange()">
 <el-option v-for="item in select" :key="item.value" :label="item.label" :value="item.value"></el-option>
 </el-select>

这样写就可以了,v-bind的缩写是:,v-on的缩写是@,这里是触发事件,应该用@,

补充知识:为elment-ui的el-select选择器添加onblur失焦事件产生的问题

如下所示:

<div class="oneline">
     <span >用户编号:</span>
     <div class="block left">
      <el-select
      :no-match-text="msg"
      :popper-append-to-body=false
      placeholder='请选择'
      v-model="value" filterable popper-class='contentadd_select' 
      ref='select'>
       <el-option
        v-for="item in users"
        :key="item.accont"
        :label="item.accont"
        :value="item.accont">
       </el-option>
      </el-select>
     </div>
    </div>

解决vue elementUI 使用el-select 时 change事件的触发问题

所需要实现的功能是当查询输入时,如果用户输入的数据是选项里面不匹配的,则返回显示无匹配数据。

JS代码如下

this.$refs.select.$refs.reference.$refs.input.onblur = ()=>{
    let haveitem=0;
    for(let i=0;i<this.users.length;i++){
     if(this.$refs.select.query==this.users[i].accont){
      haveitem++;
     }
    }
    if(!haveitem){
     this.value='无匹配数据'
     // this.msg=' '
    }
  }

上述代码的this.$refs.select.query是选择器输入时查询框绑定的值。

选择器属性有filterable属性时为可查询选择。

使用开发者工具测试时发现el-select选择器数据绑定的对象value跟查询输入时的数据对象不是同一个,然后查看el-select源码得知查询输入时的数据绑定在select.query上。

本来el-select有个blur事件绑定函数属性。但是使用后发现有时候失焦事件并不能触发生效,也就导致所绑定的函数不能执行。

看了源码得知blur这个事件函数有个定时器什么的,看不太懂,但是知道不是浏览器原生的失焦事件。

于是用vue的ref定位到该选择器来实现绑定原生onblur事件,则可以避免这个问题。

也可以使用操作dom查询利用选择器定位到这个选择器进行失焦事件绑定。

以上这篇解决vue elementUI 使用el-select 时 change事件的触发问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
关于Vue Router的10条高级技巧总结
May 06 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
Vue vee-validate插件的简单使用
Jun 22 Vue.js
详解Vue slot插槽
Nov 20 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 Vue.js
Vue项目利用axios请求接口下载excel
Nov 17 #Vue.js
vue实现下载文件流完整前后端代码
Nov 17 #Vue.js
vue+iview实现文件上传
Nov 17 #Vue.js
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 #Vue.js
vue+iview实现分页及查询功能
Nov 17 #Vue.js
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 #Vue.js
vue+iview分页组件的封装
Nov 17 #Vue.js
You might like
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
JS 判断代码全收集
2009/04/28 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Python的语言类型(详解)
2017/06/24 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
工厂厂长的职责
2013/12/12 职场文书
小学教师办公室制度
2014/02/03 职场文书
个性婚礼策划方案
2014/05/17 职场文书
员工试用期自我评价
2014/09/18 职场文书
大学生求职意向书
2015/05/11 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
法制工作总结2015
2015/07/23 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL