javascript - Daterangepicker.js 预定义日期范围的 OnChange 事件

标签 javascript jquery daterangepicker

我正在尝试弄清楚如何使用 daterangerpicker.js 库在此选择选择器中使用 onChange 事件,我已经在 DateRangePicker 中搜索过但预定义的日期范围没有问题。

请帮助我,为此选择器使用 onChange 事件的其他方法是什么?

enter image description here

$(function() {

    var start = moment().subtract(29, 'days');
    var end = moment();

    function cb(start, end) {
        $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    }

    $('#reportrange').daterangepicker({
        startDate: start,
        endDate: end,
        ranges: {
           'Today': [moment(), moment()],
           'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
           'Last 7 Days': [moment().subtract(6, 'days'), moment()],
           'Last 30 Days': [moment().subtract(29, 'days'), moment()],
           'This Month': [moment().startOf('month'), moment().endOf('month')],
           'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
        }
    }, cb);

    cb(start, end);

});
<script src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>



<div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%">
    <i class="fa fa-calendar"></i>&nbsp;
    <span></span> <i class="fa fa-caret-down"></i>
</div>

最佳答案

documentation 中所述,您可以使用 apply.daterangepicker 事件来检测用户是否更改了日期范围。

$(function() {

    var start = moment().subtract(29, 'days');
    var end = moment();

    function cb(start, end) {
        $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    }

    $('#reportrange').daterangepicker({
        startDate: start,
        endDate: end,
        ranges: {
           'Today': [moment(), moment()],
           'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
           'Last 7 Days': [moment().subtract(6, 'days'), moment()],
           'Last 30 Days': [moment().subtract(29, 'days'), moment()],
           'This Month': [moment().startOf('month'), moment().endOf('month')],
           'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
        }
    }, cb);
    
    // The event listener here.
    $('#reportrange').on('apply.daterangepicker', (e, picker) => {
      console.log('The value has changed.');
    });

    cb(start, end);

});
<script src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>



<div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%">
    <i class="fa fa-calendar"></i>&nbsp;
    <span></span> <i class="fa fa-caret-down"></i>
</div>

关于javascript - Daterangepicker.js 预定义日期范围的 OnChange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124456/

相关文章:

php - MySQL查询使用日期范围获取数据

javascript - 找不到 Chrome webkitNotification : api missing

javascript - 如何让 jQuery Datepicker 在选择日期后自动按下提交按钮

javascript - 如何使 React 组件更改全局 CSS

php - echo json_encode() 无法通过 ajax 调用工作

javascript - 我主页上的三个绝对定位的小 div

javascript - 如何用jquery打印特殊字符?

javascript - Rails 应用程序中日期范围选择器的国际化

Android:日期和时间选择器 UI 上的不同外观

javascript - 将 var 传递给 jsp 到 EXTjs