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

问题描述

我正在使用 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,'Last 30 Days': [moment().subtract(29,'This Month': [moment().startOf('month'),moment().endOf('month')],'Last Month': [moment().subtract(1,'month').startOf('month'),'month').endOf('month')]
        }
    },cb);

    cb(start,end);
})

我的表格是

enter image description here

我怎样才能做到这一点。谢谢

解决方法

Duplicate?我想这是你的问题的答案。

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

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

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

我采用了您的代码,只需将 span 更改为 input 并将 html 更改为 val,然后就可以了。

<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,"Last 30 Days": [moment().subtract(29,"This Month": [
            moment().startOf("month"),moment().endOf("month")
          ],"Last Month": [
            moment().subtract(1,"month").startOf("month"),"month").endOf("month")
          ]
        }
      },cb
    );

    cb(start,end);
  });
</script>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...