Jquery Datepicker устанавливает только 3 даты до и после соответствующей даты

Я использовал два jquery datepickers.
В первом средстве выбора даты я выбираю дату, например "18 марта 2012 года", а в следующем окне выбора даты должна отображаться только дата с 15 марта 2012 года по 21 марта 2012 года.
Следует добавить только 3 дня до и после определенной даты ("18 марта 2012 года"). Как я могу это сделать?

2 ответа

Решение

Это связано с диапазоном выбора даты. Я нашел решение, и может быть, это поможет вам. Здесь есть рабочая скрипка (в скрипке отсутствуют стили). Здесь я устанавливаю предел для следующего средства выбора даты в функции "onSelect" первого средства выбора даты.

var d;var tempdate; var tempdate1; var da; var da1;
$('#nam1').datepicker({
    minDate: 0,
    dateFormat: 'd/m/yy',
    buttonImageOnly: true,
    showAnim: 'slideDown',
    duration: 0,
    onSelect: function(dateStr) {
        d = $.datepicker.parseDate('d/m/yy', dateStr); //Get selected date
        tempdate = new Date(d);
        tempdate1 = new Date(d);
        tempdate.setDate(tempdate.getDate() - 3);    //Subtracted 3 days
        tempdate1.setDate(tempdate1.getDate() + 3);  // added 3 days 
        da = new Date(tempdate);
        da1 = new Date(tempdate1);
    }
});

$('#nam2').datepicker({
    dateFormat: 'd/m/yy',
    buttonImageOnly: true,
    showAnim: 'slideDown',
    duration: 0,
    beforeShow: function(input)
        {
            //setting min and max date for second datepicker
            if(da1 != undefined) return { minDate: da, maxDate: da1 }; 
        }
});​

Будет еще лучший способ обработки переменной даты. Попробуйте сами.

$(function(){
    $('#datepicker').datepicker({
        onSelect: function(dateText, inst) {
            var threeDays = 259200000;
            $('#datepicker2').datepicker("option", "minDate", new Date(Date.parse(dateText)-threeDays));
            $('#datepicker2').datepicker("option", "maxDate", new Date(Date.parse(dateText)+threeDays));
            $('#datepicker2').datepicker("setDate", dateText);
        }
    });
    $('#datepicker2').datepicker();
});

...259200000 - это 3 дня в микросекундах. каждый раз, когда вы выбираете дату в первом датчике, он ограничивает диапазон в 2.. К сожалению, если я уйду $('#datepicker2').datepicker("setDate", dateText);дата во втором датчике устанавливается на последнее возможное значение.

Другие вопросы по тегам