Vue.js监听select2的值改变进行查询方式
作者:A吴广智 发布时间:2024-04-30 10:42:13
标签: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)
?? ??? ?}
?? ?}
})
以上为个人经验,希望能给大家一个参考,也希望大家多多支持asp之家。
来源:https://blog.csdn.net/weixin_44443884/article/details/106541309
0
投稿
猜你喜欢
- 如下所示:import osDIR = "/home/serho/workspace/lisp"def compare(
- 先来看一下效果吧,只要有足够的照片素材,捕获女神的心就指日可待怎么样,看起来还可以吧下面就一起来完成吧数据准备首先是测试图片的获取,毕竟萝卜
- 这里的Counter是指collections中的Counter,通过Counter可以实现字典的创建以及字典key出现频次的统计。然而,使
- 以下核心代码参考黑客帝国的界面的雨滴图和网友的爱心素材一 音乐播放def alarm(): # 初始化模 &nbs
- 采用双重循环。把图片进行“.”分割后名字问前面部分,那其余数据库中的 图片路径记录进行对比 采用vb的InStr函数 如果存在的话返回值&g
- 本文介绍了mpvue+vuex搭建小程序详细教程(完整步骤),分享给大家,具体如下:源码mpvue-vuex-demo构成1、采用mpvue
- Django是一种基于Python的Web开发框架一、在命令行中创建Django项目(Windows平台、python3.6)1、建立虚拟环
- 下面这段代码,不会替换ld<sad中间的<,所以内容仍然是正常的 <% function nohtml(str) dim
- 灵感来源之前在B站看到一个有意思的视频:【B站】【亦】终极云游戏!五千人同开一辆车,复现经典群体智慧实验大家可以看看,很有意思。up主通过代
- 一、直接连接,不封装到工具类中,主要步骤:先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面)
- 本文实例为大家分享了python(列表生成式/器)的具体代码,供大家参考,具体内容如下一、列表生成式#列表生成式是快速生成一个列表的一些公式
- 前言前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:MySQL查询性能优化七种方式索引潜水MySQL查询性能优化武器之链
- 具体代码如下所示:#!/usr/bin/python# coding=utf-8from ftplib import FTPimport t
- 场景:把一个时间字符串转成Date,存进Mysql。时间天数会比实际时间少1天,也可能是小时少了13-14小时Mysql的时区是CST(使用
- 从PDF读取文本内容和从已经有的文档生成新的PDF。需要用到的模块是PyPDF2.mstamy2/PyPDF2: A utility to
- 语音识别工作原理简介语音识别源于 20 世纪 50 年代早期在贝尔实验室所做的研究。早期语音识别系统仅能识别单个讲话者以及只有约十几个单词的
- 前言网上的做法基本都是下面的代码return HttpResponseForbidden()试了一下,效果一般,没有异常页面显示,最终显示的
- 任务描述 写小论文的利器是什么呢?LaTex!写代码的利器是什么呢?VSCode!好,那么如何在VSCode上配置
- 这个问题用了我整整一晚上的时间才解决,希望有人遇到和我一样的时能少走些弯路。启动Django,服务器拒绝访问,可以尝试以下方法解决:1. 没
- 本文实例讲述了phpmyadmin中禁止外网使用的方法。分享给大家供大家参考。具体方法如下:首先,在phpmyadmin文件夹中找到 php