解決vue elementUI 使用el-select 時(shí) change事件的觸發(fā)問題
如下所示:
<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>
我們需要的是選擇之后才觸發(fā),但是這樣寫你會(huì)發(fā)現(xiàn),頁面初始化的時(shí)候會(huì)觸發(fā)多次,選擇之后又會(huì)觸發(fā)多次,原因是我們用錯(cuò)了標(biāo)簽,應(yīng)該用 @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的縮寫是@,這里是觸發(fā)事件,應(yīng)該用@,
補(bǔ)充知識(shí):為elment-ui的el-select選擇器添加onblur失焦事件產(chǎn)生的問題
如下所示:
<div class="oneline"> <span >用戶編號(hào):</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>
所需要實(shí)現(xiàn)的功能是當(dāng)查詢輸入時(shí),如果用戶輸入的數(shù)據(jù)是選項(xiàng)里面不匹配的,則返回顯示無匹配數(shù)據(jù)。
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='無匹配數(shù)據(jù)' // this.msg=' ' } }
上述代碼的this.$refs.select.query是選擇器輸入時(shí)查詢框綁定的值。
選擇器屬性有filterable屬性時(shí)為可查詢選擇。
使用開發(fā)者工具測試時(shí)發(fā)現(xiàn)el-select選擇器數(shù)據(jù)綁定的對(duì)象value跟查詢輸入時(shí)的數(shù)據(jù)對(duì)象不是同一個(gè),然后查看el-select源碼得知查詢輸入時(shí)的數(shù)據(jù)綁定在select.query上。
本來el-select有個(gè)blur事件綁定函數(shù)屬性。但是使用后發(fā)現(xiàn)有時(shí)候失焦事件并不能觸發(fā)生效,也就導(dǎo)致所綁定的函數(shù)不能執(zhí)行。
看了源碼得知blur這個(gè)事件函數(shù)有個(gè)定時(shí)器什么的,看不太懂,但是知道不是瀏覽器原生的失焦事件。
于是用vue的ref定位到該選擇器來實(shí)現(xiàn)綁定原生onblur事件,則可以避免這個(gè)問題。
也可以使用操作dom查詢利用選擇器定位到這個(gè)選擇器進(jìn)行失焦事件綁定。
以上這篇解決vue elementUI 使用el-select 時(shí) change事件的觸發(fā)問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue elementui表格獲取某行數(shù)據(jù)(slot-scope和selection-change方法使用)
- Vue中使用 ElementUi 的 el-select 實(shí)現(xiàn)全選功能(思路詳解)
- Vue中ElementUI結(jié)合transform使用時(shí)如何修復(fù)el-select彈框定位不準(zhǔn)確問題
- vue elementUI select下拉框設(shè)置默認(rèn)值(賦值)失敗的解決
- vue elementUI select下拉框如何設(shè)置默認(rèn)值
- vue elementui select標(biāo)簽監(jiān)聽change事件失效問題
相關(guān)文章
vue最強(qiáng)table vxe-table 虛擬滾動(dòng)列表 前端導(dǎo)出問題分析
最近遇到個(gè)問題,后臺(tái)一次性返回2萬條列表數(shù)據(jù)并且需求要求所有數(shù)據(jù)必須全部展示,不能做假分頁,怎么操作呢,下面通過本文介紹下vue最強(qiáng)table vxe-table 虛擬滾動(dòng)列表 前端導(dǎo)出問題,感興趣的朋友一起看看吧2023-10-10Element Table 自適應(yīng)高度的實(shí)現(xiàn)示例
el-table的高度不能適應(yīng)不同電腦的分辨率,也不能跟隨瀏覽器的高度變化而變化的問題,本文就來解決一下Element Table 自適應(yīng)高度,感興趣的可以了解一下2024-07-07springboot+VUE實(shí)現(xiàn)登錄注冊
這篇文章主要為大家詳細(xì)介紹了springboot+VUE實(shí)現(xiàn)登錄注冊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05Vue項(xiàng)目新一代狀態(tài)管理工具Pinia的使用教程
pinia是一個(gè)輕量級(jí)的狀態(tài)管理庫,屬于 vue3 生態(tài)圈新的成員之一,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目新一代狀態(tài)管理工具Pinia的使用教程,需要的朋友可以參考下2022-11-11VueQuillEditor富文本上傳圖片(非base64)
這篇文章主要介紹了VueQuillEditor富文本上傳圖片(非base64),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06vue2和vue3部署到服務(wù)器子目錄為空白頁問題及解決
這篇文章主要介紹了vue2和vue3部署到服務(wù)器子目錄為空白頁問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07vue實(shí)現(xiàn)動(dòng)態(tài)表格提交參數(shù)動(dòng)態(tài)生成控件的操作
這篇文章主要介紹了vue實(shí)現(xiàn)動(dòng)態(tài)表格提交參數(shù)動(dòng)態(tài)生成控件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11