如何找到 Bootstrap 日期选择器中取消选择的日期?

How to find which date is deselected in Bootstrap datepicker?

我正在尝试找到一种方法来创建一个包含所有选定日期的数组,而且如果有人取消选择日期,那么它将从数组中删除该日期。

我编写了以下 JavaScript 代码来获取选定和取消选定的日期。

我正在使用 bootstrap datepicker

$(function() {
  $('#disc_single_datepicker_1').datepicker().on('show', function(event) {
    DatePicker.hideOtherMonthDays();
  });
  var input_val = '';


  $('#disc_single_datepicker_1').on('changeDate', function(event) {
    //console.log(moment(event.date).format('MM/DD/YYYY h:mm a'));
    var storage = new Array();

    var formatted_date = moment(event.date).format('DD/MM/YYYY');
    console.log(formatted_date);
    if (formatted_date != '') {
      input_val = input_val + formatted_date + ",";
    }

    var exp = input_val.split(",");

    for (var i = 0; i < exp.length; i++) {
      if (exp[i] != '') {
        storage[i] = exp[i];
      }
    }
    console.log(storage);

  });


});

我正在尝试查找用户从日期选择器中取消选择的日期。

我也在使用一次只显示当前月份日期的功能。函数调用 Datepicker.hideOtherMonthDays() 所以它显示如下:

提前致谢:)我已经尝试了很多方法来寻找方法,但不确定如何做到这一点。:)

我相信你的做法是错误的。 不用知道哪个被删除了select,只需用日期 select 重新创建数组即可。

当你 select 一个日期时,datepicker returns 一个包含所有日期的事件 selected。

如果您打印以安慰实际事件,您可以看到日期 属性。

然后您可以根据需要循环遍历该数组。 这样你就不需要知道 deselected.

的日期了

这是一个最简单的代码示例。

$('#disc_single_datepicker_1').datepicker({
    multidate: true
  }).on('show', function(event) {
    DatePicker.hideOtherMonthDays();
  }).on('changeDate', function(event) {
    var storage = new Array();
    //here's the magic
    for (var i = 0; i < event.dates.length; i++) {
      var formatted_date = moment(event.dates[i]).format('DD/MM/YYYY');
      storage.push(formatted_date);
    }

    console.log(storage);
  });

Here's a working fiddle(打开控制台)。

PS:如果您想在其他地方使用它,您可能需要将变量 storage 移出范围。