我使用pickadate.js设置收件人和发件人日期。我让它基于Code Pen example工作。我正在使用的代码如下:
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日或之后的任何内容。设置“到”日期时也会发生相同的情况。您无法在到日期之后选择任何起始日期。
唯一的问题是,如果我将截止日期设置为8月21日,我也可以选择8月21日的截止日期。我想要实现的是能够禁用在相应的“从”和“到”字段中选择的日期。
换句话说,如果我选择8月21日作为我的发件日期,那么我可以在日期字段中选择的最早日期是8月22日,反之亦然。
如何修改我的代码才能实现这一目标?
答案 0 :(得分: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)
}
})