Ich versuche, den Wert der Eingabe zurückzusetzen, sobald ich auf ein Datum in der Datumsauswahl klicke. Mein Ziel ist es, ein einzelnes Datum in das Array einzufügen, sobald ich auf ein Datum klicke. Was passiert, wenn ich mehrmals auf ein Datum klicke? Es enthält weiterhin den vorherigen Wert der Eingabe.

var date = new Date();
var days = [];

$(document).ready(function(){
  $("#inputMultiDate").datepicker({
    autoclose: true,
    todayHighlight: true,
    multidate: true,
    format: 'dd-mm-yyyy'
  }).on("changeDate", function(){
    dates = $('#inputMultiDate').val().split(',');
    days.push(dates);
     $('#inputMultiDate').attr('value', '');  
    console.log(days);
  });;
});

<input type="text" id="inputMultiDate" class="form-control" placeholder="Pick the multiple dates">
1
Josel Parayno 18 Jän. 2019 im 10:25

3 Antworten

Beste Antwort

Sie können einfach mit Datepicers onSelect auf das Ereignis zugreifen:

var date = new Date();
var days = [];

$(document).ready(function() {
  $("#inputMultiDate").datepicker({
    autoclose: true,
    todayHighlight: true,
    multidate: true,
    format: 'dd-mm-yyyy',
    onSelect: function(dateText) {
      dates = $('#inputMultiDate').val().split(',');
      days.push(dates);
      $('#inputMultiDate').attr('value', '');
      console.log(days);
      let value = $("#inputMultiDate").datepicker("getDate");
      console.log(value);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input type="text" id="inputMultiDate" class="form-control" placeholder="Pick the multiple dates">
1
Stephan T. 18 Jän. 2019 im 08:04

Versuchen Sie, die neue Funktion Date () jedes Mal aufzurufen, wenn sich das Datum ändert. Derzeit haben Sie ein Datum, an dem die Seite geladen wird.

var date = new Date();
var days = [];

$(document).ready(function(){
  $("#inputMultiDate").datepicker({
    autoclose: true,
    todayHighlight: true,
    multidate: true,
    format: 'dd-mm-yyyy'
   }).on("changeDate", function(){
    date = new Date();
    dates = $('#inputMultiDate').val().split(',');
    days.push(dates);
    $('#inputMultiDate').attr('value', '');  
    console.log(days);
  });;
});
0
F. Ception 18 Jän. 2019 im 07:30
$('#inputMultiDate').val('')

In jQuery ist "val" eine get-Funktion und eine set-Funktion. Sie können Ihre Eingabe mit val ('') einstellen.

0
Onurgule 18 Jän. 2019 im 07:28