如何检查日期是否更改了日期范围选择器?

How to check date is change in date range picker?

我正在使用 Bootstrap 日期范围选择器并且我希望如果用户更改日期然后我提交表单以获取新数据。这是我的代码,

$(document).ready(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'));
        $('#start_date').val(start.format('YYYY-MM-DD'))
        $('#end_date').val(end.format('YYYY-MM-DD'))
        
    }

    $('#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);
})

我的表格是 我怎样才能做到这一点。谢谢

Duplicate?我想这就是您回答问题的方式。

$('#reportrange').on('apply.daterangepicker', function(ev, picker) {
    alert ('hello');
});

无论哪种方式,您都可以在日期更改时使用回调 (cb) 提交表单,方法是添加一些触发器来提交表单,例如:$("#someform").submit();确保在表单输入的每次更改中插入选定的日期。

此外,在 daterangepicker 个示例中。我想你也会在那里找到你的解决方案。

我拿了你的代码,只是将 span 更改为 inputhtmlval 然后就可以了。

<script type="text/javascript">
  $(document).ready(function () {
    var start = moment().subtract(29, "days");
    var end = moment();

    function cb(start, end) {
      $("#reportrange input").val(
        start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY")
      );
      $("#start_date").val(start.format("YYYY-MM-DD"));
      $("#end_date").val(end.format("YYYY-MM-DD"));
      $("#someform").submit();
    }

    $("#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>

$(文档).ready(函数(){

$(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'));
       $('#start_from').val(start.format('DD-MM-YYYY'));
       $('#start_to').val(end.format('DD-MM-YYYY'));
       $('#reportrange2 span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
       $('#start_from2').val(start.format('DD-MM-YYYY'));
       $('#start_to2').val(end.format('DD-MM-YYYY'));
       if(searchOn == true){
           searchrow(1);
       }
    }
  

    $('#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()],
    }
    }, cb);

    $('#reportrange2').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()],
    }
    }, cb);

    cb(start, end);

});

});