解决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.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
vue绑定class的三种方法
Dec 24 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
vue 组件基础知识总结
Jan 26 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
如何使用vue3打造一个物料库
May 08 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 手机归属地查询 api
2010/02/08 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
nginx下安装php7+php5
2016/07/31 PHP
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
Express系列之multer上传的使用
2017/10/27 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
详解Swift中属性的声明与作用
2016/06/30 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
聚美优品广告词改编
2014/03/14 职场文书
三方协议书范本
2014/04/22 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
小学生表扬稿范文
2015/05/05 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
KVM基础命令详解
2022/04/30 Servers