解决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 +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
Vue仿Bibibili首页的问题
Jan 21 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
玩转方法:call和apply
2014/05/08 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
vue组件学习教程
2017/09/09 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
Python中replace方法实例分析
2014/08/20 Python
Python实现的最近最少使用算法
2015/07/10 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
详解python调用cmd命令三种方法
2019/07/08 Python
比驿:全球酒店比价网
2018/06/20 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
护士自我鉴定总结
2014/03/24 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
保外就医申请书范文
2015/08/06 职场文书
Django REST framework 限流功能的使用
2021/06/24 Python