Vue.js監(jiān)聽(tīng)select2的值改變進(jìn)行查詢方式
監(jiān)聽(tīng)select2的值改變進(jìn)行查詢
由于前端項(xiàng)目使用的是Vue.js和bootstrap整合開(kāi)發(fā),中間用到了select2下拉框,今天在做查詢的時(shí)候,想根據(jù)下拉框的值變動(dòng)進(jìn)行監(jiān)聽(tīng)查詢,方法如下:
頁(yè)面中引用select2組件
<div class="input-group input-group-sm mb-3"> ?? ?<select v-select2="" v-model="ruleAndRemindType" v-on:change="getChange(ruleAndRemindType)" data-placeholder="請(qǐng)選擇分類" ?class="js-example-placeholder-multiple col-sm-12"> ?? ??? ?<option value="rule">規(guī)則設(shè)置</option> ?? ??? ?<option value="remind">提醒設(shè)置</option> ?? ?</select> </div>
在js里引入如下代碼:
Vue.directive('select2', { ?? ?inserted: function (el, binding, vnode) { ?? ??? ?let options = binding.value || {}; ?? ??? ?$(el).select2(options).on("select2:select", (e) => { ?? ??? ??? ?el.dispatchEvent(new Event('change', {target: e.target})); //說(shuō)好的雙向綁定,竟然不安套路 ?? ??? ?}); ?? ?}, ?? ?update: function (el, binding, vnode) { ?? ??? ?for (var i = 0; i < vnode.data.directives.length; i++) { ?? ??? ??? ?if (vnode.data.directives[i].name == "model") { ?? ??? ??? ??? ?$(el).val(vnode.data.directives[i].value); ?? ??? ??? ?} ?? ??? ?} ?? ??? ?$(el).trigger("change"); ?? ?} });
在vue實(shí)例中使用,進(jìn)行測(cè)試
var vm = new Vue({ ?? ?el: '#app', ?? ?data:{ ?? ??? ?ruleAndRemindType: 'rule' ?? ?}, ?? ?methods: { ?? ??? ?//初始執(zhí)行 ?? ??? ?init() { ?? ??? ??? ?this.getList('rule'); ?? ??? ?}, ?? ??? ?getChange: function (ruleAndRemindType) { ?? ??? ??? ?this.getList(ruleAndRemindType); ?? ??? ?}, ?? ??? ?getList: function(ruleAndRemindType) { ?? ??? ??? ?alert(ruleAndRemindType); ?? ??? ?}, ?? ?},?? ? ?? ?mounted(){ ?? ??? ?setTimeout(function(){ ?? ??? ??? ?vm.init(); ?? ??? ?},50) ?? ?} })
因?yàn)橛玫奖O(jiān)聽(tīng)值的變化進(jìn)行動(dòng)態(tài)查詢,所以查詢資料找到此辦法,親測(cè)可行
監(jiān)聽(tīng)select的事件
<select @change="findItemNameBYClass"> ? ? ? ?<option v-for="(name,index) in findItemName" :key="index">{{name}}</option> ? ? </select>
vue代碼
var vm = new Vue({ ?? ?el : '#container', ?? ?data : { ?? ?}, ?? ?methods:{ ?? ??? ?findItemNameBYClass:function(e){ ?? ??? ??? ??? ?console.log( e.target.value) ?? ??? ?} ?? ?} })
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Electron中打包應(yīng)用程序及相關(guān)報(bào)錯(cuò)問(wèn)題的解決
這篇文章主要介紹了Electron中打包應(yīng)用程序及相關(guān)報(bào)錯(cuò)問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Vue中watch監(jiān)聽(tīng)第一次不觸發(fā)、深度監(jiān)聽(tīng)問(wèn)題
這篇文章主要介紹了Vue中watch監(jiān)聽(tīng)第一次不觸發(fā)、深度監(jiān)聽(tīng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法
本篇文章主要介紹了Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07vuex通過(guò)getters訪問(wèn)數(shù)據(jù)為undefined問(wèn)題及解決
這篇文章主要介紹了vuex通過(guò)getters訪問(wèn)數(shù)據(jù)為undefined問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Vue封裝DateRangePicker組件流程詳細(xì)介紹
在后端管理項(xiàng)目中使用vue來(lái)進(jìn)行前端項(xiàng)目的開(kāi)發(fā),但我們都知道Vue實(shí)際上無(wú)法監(jiān)聽(tīng)由第三方插件所引起的數(shù)據(jù)變化。也無(wú)法獲得JQuery這樣的js框架對(duì)元素值的修改的。而日期控件daterangepicker又基于JQuery來(lái)實(shí)現(xiàn)的2022-11-11vue3 setup訪問(wèn)子組件的 DOM 元素的示例代碼
使用setup的情況下這個(gè)時(shí)候我們無(wú)法使用this,注意在setup中setup是封閉的,不會(huì)將子組件事件暴露出來(lái),所以要用defineExpose(),這篇文章主要介紹了vue3 setup訪問(wèn)子組件的 DOM 元素,需要的朋友可以參考下2023-08-08Vue插槽slot詳細(xì)介紹(對(duì)比版本變化,避免踩坑)
Vue中的Slot對(duì)于編寫可復(fù)用可擴(kuò)展的組件是再合適不過(guò)了,下面這篇文章主要給大家介紹了關(guān)于Vue插槽slot詳細(xì)介紹的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06Vue實(shí)現(xiàn)下拉滾動(dòng)加載數(shù)據(jù)的示例
這篇文章主要介紹了Vue實(shí)現(xiàn)下拉滾動(dòng)加載數(shù)據(jù)的示例,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04