0

我正在使用pickadate.js设置 To 和 From 日期。我让它基于Code Pen 示例工作。我正在使用的代码如下:

var from_$input = $('#CAT_Custom_649616, #CAT_Custom_649610').pickadate(),
    from_picker = from_$input.pickadate('picker');

var to_$input = $('#CAT_Custom_649617, #CAT_Custom_649611').pickadate(),
    to_picker = to_$input.pickadate('picker');


if ( from_picker.get('value') ) {
  to_picker.set('min', from_picker.get('select'));
}
if ( to_picker.get('value') ) {
  from_picker.set('max', to_picker.get('select'));
}


from_picker.on('set', function(event) {
  if ( event.select ) {
    to_picker.set('min', from_picker.get('select'))  ;  
  }
  else if ( 'clear' in event ) {
    to_picker.set('min', false);
  }
});
to_picker.on('set', function(event) {
  if ( event.select ) {
    from_picker.set('max', to_picker.get('select'));
  }
  else if ( 'clear' in event ) {
    from_picker.set('max', false);
  }
});

我想将代码比示例更进一步。当您设置From日期时,它将禁用该To日期之前的From日期。例如,如果您将起始日期设置为 2015 年 8 月 21 日,则在“截止日期”字段中,您可以选择 2015 年 8 月 21 日或更晚,之前什么都没有。设置 To date 时也会发生同样的情况。您不能选择结束日期之后的任何开始日期。

一个问题是,如果我将 From 日期设置为 8 月 21 日,我还可以选择 8 月 21 日的 To 日期。我想要实现的是能够禁用在相应 From 和 To 字段中选择的日期。

换句话说,如果我选择 8 月 21 日作为我的开始日期,那么我可以在“截止日期”字段中选择的最早日期是 8 月 22 日,反之亦然。

我将如何修改我的代码来实现这一点?

4

1 回答 1

0

试试这个,它对我有用。我只是为了迄今为止。

var from_$input = $('#CAT_Custom_649616, #CAT_Custom_649610').pickadate(),
from_picker = from_$input.pickadate('picker');

var to_$input = $('#CAT_Custom_649617, #CAT_Custom_649611').pickadate(),
to_picker = to_$input.pickadate('picker');

if (from_picker.get('value')) {
    var checkIN = new Date($('#CAT_Custom_649616, #CAT_Custom_649610').val());
    checkIN.setDate(checkIN.getDate() + 1);
    var dateDateN = checkIN.getDate();
    var dateMonthN = checkIN.getMonth() + 1; //January is 0!
    var dateYearN = checkIN.getFullYear();
    to_picker.set('min', new Date(dateYearN, dateMonthN - 1, dateDateN + 1));
}

if (to_picker.get('value')) {
    //from_picker.set('max', to_picker.get('select'))
}
from_picker.on('set', function (event) {
    if (event.select) {
       // alert(from_picker.get('select'));
    var checkIN = new Date($('#CAT_Custom_649616, #CAT_Custom_649610').val());
    checkIN.setDate(checkIN.getDate() + 1);
    var dateDateN = checkIN.getDate();
    var dateMonthN = checkIN.getMonth() + 1; //January is 0!
    var dateYearN = checkIN.getFullYear();
    to_picker.set('min', new Date(dateYearN, dateMonthN - 1, dateDateN + 1));
    } else if ('clear' in event) {
        to_picker.set('min', false)
    }
})
于 2015-11-09T06:45:04.080 回答