【问题标题】:How to check date is change in date range picker?如何检查日期范围选择器中的日期是否更改?
【发布时间】:2021-04-08 08:05:47
【问题描述】:

我正在使用 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);
})

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

【问题讨论】:

    标签: jquery bootstrap-4 daterangepicker bootstrap-daterangepicker


    【解决方案1】:

    $(document).ready(function(){

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

    });

    【讨论】:

      【解决方案2】:

      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, "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>
      

      【讨论】:

      猜你喜欢
      • 2015-12-24
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      相关资源
      最近更新 更多