Search code examples
flatpickr

Flatpickr: Submit form OnChange date


I try to use OnChange to send the selected date to my form in order to reload my page with the selected date in URL parameter but I don't find how to do this.

Previously I used jQuery datepicker and it was pretty simple.

<form id="form" method="GET">
<input type="text" id="basicDate" placeholder="Please select Date Time" data-input>
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/flatpickr/4.2.3/flatpickr.js"></script>
  <script>
 $("#basicDate").flatpickr({
    enableTime: false,
    dateFormat: "Y-m-d",
});
 </script>

previously, using jQuery date picker:

<form method='POST' enctype='multipart/form-data' id='formId'>
  <input type="text" id="datepicker"/>
</form>

$(document).ready(function() {
  $('#datepicker').datepicker({
       onSelect : function (dateText, inst) {
          $('#formId').submit(); // <-- SUBMIT
  }});
});

Solution

  • You can submit form when input has been changed and also check input is not blank. Here is code for that :

    <form id="form" method="GET">
    <input type="text" id="basicDate" placeholder="Please select Date Time" data-input>
    </form>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flatpickr/4.5.1/flatpickr.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
       <script src="https://cdnjs.cloudflare.com/ajax/libs/flatpickr/4.2.3/flatpickr.js"></script>
      <script>
    $(document).ready(function(){
     $("#basicDate").flatpickr({
        enableTime: false,
        dateFormat: "Y-m-d",
    });
    });
    $(document).on('change','#basicDate',function(){
    
        if($('#basicDate').val() != ''){
           $('#form').submit();
    }
    });