daterangepicker与vue集成,vue无法获得日期控件时间的修改解决方法

简介: daterangepicker与vue集成,vue无法获得日期控件时间的修改解决方法

在后端管理项目中使用vue来进行前端项目的开发,但我们都知道Vue实际上无法监听由第三方插件所引起的数据变化。也无法获得JQuery这样的js框架对元素值的修改的。而日期控件daterangepicker又基于JQuery来实现的。


因此,在实践中会出现在日期控件中点击修改了日期,而无法通过vue来获得对应的值。


下面来说一下其中一种解决方案:主动触发Event事件。以下为相关内容的部分代码。


首先引入日期控件daterangepicker相关依赖的js和css。


<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css"/>


当然,上面还需要引入jQuery相关的框架。


在页面的指定位置添加日期控件的input。


<input id="openDate" type="text" name="openDate" class="form-control"

                          autocomplete="off" placeholder="选择日期"

                          v-model="openDate"/>


这里痛v-model与vue中的openDate想绑定,但在后面js中不做特殊处理,是无法通过vue拿到该字段的值的。


js中初始化日期控件及触发DOM对象上的原生input事件。


// 日期控件
$(function () {
    $('#openDate').daterangepicker({
        showWeekNumbers: false,
        timePicker: false,
        timePickerIncrement: 1,
        singleDatePicker: true,
        startDate: moment(),
        maxDate: moment(),
        locale: {
            // cancelLabel: '清空'
            format: "YYYY-MM-DD", //设置显示格式
            applyLabel: '确定', //确定按钮文本
            cancelLabel: '取消', //取消按钮文本
            customRangeLabel: '自定义',
            daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'],
            monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',
                '七月', '八月', '九月', '十月', '十一月', '十二月'
            ],
            firstDay: 1
        }
    }).on("hide.daterangepicker",function (ev) {
        //触发DOM对象上的原生input事件
        this.dispatchEvent(new Event('input'))
    });
});

需要特别注意的就是最后on方法中对hide.daterangepicker事件进行处理,在处理的方法中手动触发时间。

而至于该input的openDate属性在vue中的相关代码如下:

var vm = new Vue({
    //....
    data: {
//....
        openDate:"",
//....
    },
    //...
});

至此,日期控件可正确相应,并且vue也能够拿到日期控件中值的变化。


目录
相关文章
|
5月前
|
JavaScript
vue的重定向解决方法
vue的重定向解决方法
94 1
|
1月前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
44 3
|
2月前
|
存储 JavaScript 前端开发
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
文章展示了在Vue项目中通过集成Quill富文本编辑器实现公告功能的完整开发过程,包括前端的公告发布、修改、删除操作以及后端的数据存储和处理逻辑。
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
|
3月前
|
资源调度 JavaScript
Electron 集成 Vue —— electron-vue
Electron 集成 Vue —— electron-vue
44 0
|
4月前
|
JavaScript
Vue搭配ELEMENT之后,右侧点击栏点击跳转到空白页解决方法
Vue搭配ELEMENT之后,右侧点击栏点击跳转到空白页解决方法
|
5月前
|
JavaScript 前端开发 API
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
151 2
|
5月前
|
资源调度 JavaScript 测试技术
Vue的集成测试:使用VueTestUtils进行单元测试的技术博文
【4月更文挑战第24天】本文介绍了如何使用VueTestUtils进行Vue.js项目的集成测试。首先,需安装VueTestUtils和vue-template-compiler。接着,展示了如何编写测试用例,包括使用`mount`和`shallowMount`方法挂载组件,以及通过`wrapper`操作和断言组件行为。文章还讨论了单元测试与集成测试的区别,并提到了模拟依赖、交互、组件状态管理和断言的策略。最后,强调了测试的可读性和可维护性对代码质量的重要性。通过VueTestUtils,开发者能更高效地进行Vue组件的测试。
|
5月前
|
XML NoSQL JavaScript
sprinboot+vue集成neo4j图数据库
sprinboot+vue集成neo4j图数据库
|
5月前
|
JavaScript 应用服务中间件 nginx
vue中404解决方法
vue中404解决方法
34 0
|
5月前
|
JavaScript 应用服务中间件 nginx
vue中404解决方法
vue中404解决方法