Vue.js监听select2的值改变进行查询方式

 更新时间:2022年04月07日 12:49:22   作者:A吴广智  
这篇文章主要介绍了Vue.js监听select2的值改变进行查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

监听select2的值改变进行查询

由于前端项目使用的是Vue.js和bootstrap整合开发,中间用到了select2下拉框,今天在做查询的时候,想根据下拉框的值变动进行监听查询,方法如下:

页面中引用select2组件

<div class="input-group input-group-sm mb-3">
    <select v-select2="" v-model="ruleAndRemindType" v-on:change="getChange(ruleAndRemindType)" data-placeholder="请选择分类"  class="js-example-placeholder-multiple col-sm-12">
        <option value="rule">规则设置</option>
        <option value="remind">提醒设置</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})); //说好的双向绑定,竟然不安套路
        });
    },
    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实例中使用,进行测试

var vm = new Vue({
    el: '#app',
    data:{
        ruleAndRemindType: 'rule'
    },
    methods: {
        //初始执行
        init() {
            this.getList('rule');
        },
        getChange: function (ruleAndRemindType) {
            this.getList(ruleAndRemindType);
        },
        getList: function(ruleAndRemindType) {
            alert(ruleAndRemindType);
        },
    },    
    mounted(){
        setTimeout(function(){
            vm.init();
        },50)
    }
})

因为用到监听值的变化进行动态查询,所以查询资料找到此办法,亲测可行 

监听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)
        }
    }
})

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • 详解vue2.0监听属性的使用心得及搭配计算属性的使用

    详解vue2.0监听属性的使用心得及搭配计算属性的使用

    这篇文章主要介绍了vue2.0之监听属性的使用心得及搭配计算属性的使用,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 7个很棒的Vue开发技巧分享

    7个很棒的Vue开发技巧分享

    这篇文章主要为大家整理了7个很棒的Vue开发技巧,可以帮助大家更好的理解和使用vue框架。文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-02-02
  • 详解VueJS应用中管理用户权限

    详解VueJS应用中管理用户权限

    本篇文章主要给大家讲述了VueJS应用中管理用户权限的详细过程和方法,以及相关的代码展示,需要的朋友参考下吧。
    2018-02-02
  • 详解Vue3 中的watchEffect 特性

    详解Vue3 中的watchEffect 特性

    这篇文章主要介绍了Vue3 中的 watchEffect 特性详解,watchEffect 是 Vue3 中非常有用的一个特性,它可以让我们轻松地监听响应式数据的变化,并在数据发生变化时执行指定的回调函数,从而简化代码并提高应用的性能,需要的朋友可以参考下
    2023-04-04
  • 一文了解axios和vue的整合操作

    一文了解axios和vue的整合操作

    axios作为Vue生态系统中浓墨重彩的一笔,我学习这个东西也是花了一定的时间的,下面这篇文章主要给大家介绍了关于axios和vue整合操作的相关资料,需要的朋友可以参考下
    2022-04-04
  • 如何使用vue自定义指令构建拖放插件

    如何使用vue自定义指令构建拖放插件

    这篇文章主要介绍了如何使用vue自定义指令构建拖放插件,帮助大家更好的理解和学习使用vue,感兴趣的朋友可以了解下
    2021-04-04
  • vue2基本响应式实现方式之让数组也变成响应式

    vue2基本响应式实现方式之让数组也变成响应式

    这篇文章主要介绍了vue2基本响应式实现方式之让数组也变成响应式问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 从Element日期组件源码中学到的两个工具方法技巧

    从Element日期组件源码中学到的两个工具方法技巧

    这篇文章主要介绍了从Element日期组件源码中学到的两个工具方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • element修改form的el-input宽度,el-select宽度的方法实现

    element修改form的el-input宽度,el-select宽度的方法实现

    有时候像form表单这样,页面的input、select等宽度不一定会是一样的,可能有些长,有些短,本文就介绍了如何element修改form的el-input宽度,el-select宽度的方法实现,感兴趣的可以了解一下
    2022-02-02
  • 实现vuex与组件data之间的数据同步更新方式

    实现vuex与组件data之间的数据同步更新方式

    今天小编就为大家分享一篇实现vuex与组件data之间的数据同步更新方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论