2

I am using http://www.daterangepicker.com/#usage package and currently facing some difficulties in clearing the selection. Based on the documentation, there is a clear option but it doesn't work/cleared after I click to apply button.

This is the codes:

$(function() {
  $('input[name="datefilter"]').daterangepicker({
      autoUpdateInput: false,
      locale: {
          cancelLabel: 'Clear'
      }
  });

  $('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) {
      $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
  });

  $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
      $(this).val('');
  });

});

Does anyone have the same experience? how to solve this issue? looks like this package is not maintained anymore :(

Hedayatullah Sarwary
  • 2,664
  • 3
  • 24
  • 38
Suvin94
  • 283
  • 9
  • 30
  • 1
    Its clearing input box . Check [here](https://jsfiddle.net/wz70x5sj/). – Swati Jun 23 '21 at 04:09
  • @Swati yes it can clear input but it can't clear the selection after u click apply and click clear again :( That's the problem – Suvin94 Jun 23 '21 at 04:13

1 Answers1

3

Try resetting startDate and endDate

picker.setStartDate({})
picker.setEndDate({})

$('input[name="datefilter"]').daterangepicker({
  autoUpdateInput: false,
  locale: {
    cancelLabel: 'Clear'
  }
});

$('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) {
  $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
});

$('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
  $(this).val('')
  picker.setStartDate({})
  picker.setEndDate({})
});
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<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" />

<input type="text" name="datefilter" value="01/01/2018 - 01/15/2018" />

Also, set the default date format as 'MM/DD/YYYY'. Don't need apply.daterangepicker event

User863
  • 19,346
  • 2
  • 17
  • 41
  • 1
    Also, set the [default](http://www.daterangepicker.com/#example2) date format as 'MM/DD/YYYY'. Don't need apply.daterangepicker event – User863 Jun 23 '21 at 04:30