jQuery UI средство выбора даты maxdate

Мне нужно, чтобы 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];
    }
  }

person pertrai1    schedule 13.09.2011    source источник


Ответы (1)


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

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/

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

person Andrew Whitaker    schedule 13.09.2011