解决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 相关文章推荐
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
Vue $attrs &amp; inheritAttr实现button禁用效果案例
Dec 07 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 Vue.js
vue 实现弹窗关闭后刷新效果
Apr 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
php生成随机颜色方法汇总
2014/12/03 PHP
php实现字符串翻转的方法
2015/03/27 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
jquery中ajax学习笔记一
2011/10/16 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
python中实现字符串翻转的方法
2018/07/11 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
在家更换处方镜片:Lensabl
2019/05/01 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
扬尘污染防治方案
2014/06/15 职场文书
村级四风对照检查材料
2014/08/24 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
总经理司机岗位职责
2015/04/10 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS