在flatpickr中获取取消选择日期时出错

时间:2018-06-15 06:26:40

标签: javascript jquery flatpickr

我在我的应用上使用flatpickr作为日期时间选择器。此日期选择器允许选择多个日期。我得到了我上次选择的日期(所选日期看似标记)。但问题是,当我从多个日期中随机选择一个日期时,我无法获取该日期。

这是我的jQuery代码

$("#available-calendar").flatpickr({
    disableTime: true,
    dateFormat: "Y-m-d",
    inline: true,
    mode: "multiple",
    minDate: "today",

    defaultDate: newDates,
    onChange: function(selectedDates, dateStr, instance) {
        var selectedDates = dateStr.split(",");
        var latestDate = selectedDates[selectedDates.length-1];
        console.log(latestDate);
        alert(latestDate);
    },
});

此处newDates是从数据库中提取的日期数组。

1 个答案:

答案 0 :(得分:0)

我担心现在没有来自flatpickr的支持方法。我将通过将其存储在global variable中来为您提供一个获取取消选择日期的技巧。它可能适合你的情况

$(() => {
  let defaultDate = ["2018-06-20", "2018-06-22"]
  let selected = _.cloneDeep(defaultDate)
  $("#test").flatpickr({
    disableTime: true,
    dateFormat: "Y-m-d",
    inline: true,
    mode: "multiple",
    minDate: "today",
    defaultDate: defaultDate,
    onChange: function(selectedDates, dateStr, instance) {

      let newDate = _.chain(dateStr)
        .split(',')
        .map(_.trim)
        .value();
      if (newDate.length < selected.length ) {
        let deselected = _.difference(selected, newDate);
        console.log(deselected)
      } 
      selected = _.cloneDeep(newDate)
    }
  });
});

demo =&gt; https://codepen.io/anon/pen/zaEGOK

相关问题