JQuery UI DatePicker MaxDate - PullRequest
       12

JQuery UI DatePicker MaxDate

2 голосов
/ 13 сентября 2011

Мне нужно, чтобы maxDate для моего средства выбора даты jQueryUI динамически обновлялось в зависимости от дня. Прямо сейчас, как вы увидите ниже, есть функция, используемая для отключения понедельника-четверга, потому что наша команда может сообщать только о проблемах пятница-воскресенье. Так что мне нужно сделать так, чтобы команда могла продолжать отчитываться по выходным, но не по следующим выходным до четверга. Например, сегодня понедельник, команда по-прежнему может сообщать о проблемах с последнего четверга по воскресенье и не сможет выбрать день для следующих выходных до четверга. Возможно ли это?

Вот код, который у меня есть:

  var fullDate = new Date();
  var twoDigitMonth = ((fullDate.getMonth().length+1) === 1)? (fullDate.getMonth()+1) : '0' + (fullDate.getMonth()+1);      

  $('#startdate').datepicker({
    maxDate: twoDigitMonth + "/" + fullDate.getDate() + "/" + fullDate.getFullYear(),
    beforeShowDay: disableSpecificWeekDays
  });


  function disableSpecificWeekDays(date) {
    if((date.getDay()==0) || (date.getDay() == 5) || (date.getDay() == 6) ){
        return [true];
    }else{
        return [false];
    }
  }

1 Ответ

2 голосов
/ 13 сентября 2011

Что-то вроде этого должно работать для вас:

function getMaxDate() {
    // Maximum date is today by default.
    var maxDate = new Date();

    // Is today Thursday or greater (Thurs. - Sat.)
    if (maxDate.getDay() >= 4) {
        // Yes? Make the date today's date plus the difference between today and
        // next Sunday
        maxDate.setDate(
            maxDate.getDate() + (7 - maxDate.getDay()));
    }
    return maxDate;
}

$('#startdate').datepicker({
    maxDate: getMaxDate(),
    beforeShowDay: disableSpecificWeekDays
});

Пример: http://jsfiddle.net/RxQB4/

По сути, напишите функцию, которая инкапсулирует вашу логику. При инициализации средства выбора даты вызовите эту функцию, чтобы получить максимальную дату.

...