解决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+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
详解Vue router路由
Nov 20 Vue.js
Vue.js中v-bind指令的用法介绍
Mar 13 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 Vue.js
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
vue router 动态路由清除方式
May 25 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
linux下编译安装memcached服务
2014/08/03 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
Django权限控制的使用
2021/01/07 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
美国创意之家:BulbHead
2017/07/12 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
毕业生简历自我评价范文
2014/04/09 职场文书
医疗纠纷协议书
2014/04/16 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
承诺书范本
2015/01/21 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫