解决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打开其他项目页面并传入数据详解
Nov 25 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue3.0实现插件封装
Dec 14 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
详解Vue的列表渲染
Nov 20 Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
May 15 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验证码类分享
2014/11/18 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
JS库之Highlight.js的用法详解
2017/09/13 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
pycharm 解除默认unittest模式的方法
2018/11/30 Python
python解析xml简单示例
2019/06/21 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
Django 请求Request的具体使用方法
2019/11/11 Python
django中media媒体路径设置的步骤
2019/11/15 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
幼儿学前班评语
2014/12/29 职场文书
旷课检讨书
2015/01/26 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2015年超市工作总结
2015/04/09 职场文书
护士岗位竞聘书
2015/09/15 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang