2010-06-22 1 views
0

У меня есть пятимесячный встроенный календарь Datepicker. startDate - это переменная, которую я написал, которая задается событием клика пользователя. Я настройка параметров MinDate и MaxDate после инициализации, делая это:jQuery UI Datepicker minDate изменяет настройку календаря; как я могу его заморозить?

$('#datepicker').datepicker("option",{"minDate":startDate,"maxDate":endDate}).datepicker("refresh"); 

Однако, когда календарь обновляется, он отображает первый месяц в соответствии с переменной STARTDATE, которая дезориентирует. Например, у меня есть календарь init в январе, и он отображается в мае. Когда startDate происходит в более позднем месяце, скажем, в феврале, тогда, когда я обновляю календарь, он отображается начиная с этого месяца (февраль) и отключает все даты до выбранного. Я хотел бы заморозить календарь так, чтобы он всегда показывался с января по май, но тем не менее вычеркивает все даты до minDate.

Есть ли простой способ заморозить календарь, чтобы он отображал конкретный 5-месячный диапазон независимо от настроек minDate и maxDate?

Заранее спасибо.

ответ

1

Можете ли вы попробовать поставить обновление перед настройками?

+0

Спасибо, я просто попробовал это, и он все еще запускает календарь в месяц minDate, а не в январе. –

1
$("#datepicker").datepicker({ showCurrentAtPos: new Date().getMonth(), numberOfMonths: 12, minDate: startDate, maxDate: endDate}); 
+0

Спасибо, я вижу, что вы делаете, но никогда, когда установлен minDate, первый месяц показан месяц minDate, так как текущий месяц меняется на февраль. Может быть, другой способ рассказать о том, как заморозить currentMonth? Спасибо за ответы, все еще застрял. –

+0

добавить 'stepMonths: 0' в параметры. Помимо этого, я считаю, что он не поддерживает то, что вы пытаетесь сделать из коробки. –

+0

Спасибо, что тоже не работает. Я переключу свое усилие на создание массива дат затемнения, а затем обновление массива, а затем обновление.Это больше работает, но не взламывает настройки minDate/maxDate, возможно, более устойчивыми. Однако, если кто-то знает, как это сделать, пожалуйста, разместите здесь. Всем спасибо. –

2

Я пытался взломать функцию minDate и maxDate, чтобы погасить даты до выбранной даты. Вместо того, чтобы делать это, я построил массив дат объектов, которые я кормлю в beforeShowDay как так:

$('#datepicker').datepicker({ 
      ... 
      beforeShowDay: setRestrictedDates, 
      ... 
    }) 
function setRestrictedDates(date) { 
    var arrLen = jsForbiddenDatesArray.length; 
    for (var x=0; x<arrLen; x++) { 
    var arraydate = jsForbiddenDatesArray[x]; 
    var arraytime = Math.round(new Date(arraydate).getTime()/86400000); 
    var dtime = Math.round(date.getTime()/86400000); 
    if (dtime == arraytime || date.getDay() == 5) { 
    return [false, '']; 
    break; 
    } 
    } 
    return $.datepicker.noWeekends(date); 
} 

Обратите внимание, что установка DTIME путем деления 86400000 просто преобразует даты в дни, так что я могу сравнить, чтобы убедиться, что два дня одинаковы (время dtime == arraytime). Кроме того, оператор OR «date.getDay() == 5» выбирает все пятницы. Это, в сочетании с datepicker.noWeekends (date), означает, что у меня есть выходные и пятницы, затемненные, вместе с любыми датами в моем запретном массиве дат.

Надеюсь, это поможет кому-то. Установка дат отключения для datepicker очень удобна, но я нашел документацию для этого, чтобы быть неясной к несуществующей.

Спасибо всем здесь и на форумах jQuery, которые помогли мне понять это.

1

John--

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

http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/

Функция "Диапазон" детализируется вниз вблизи дна. Если вы проверите это, убедитесь, что вы не забыли связать assoated CSS-файл, так как это сделает или сломает скрипт.

Удачи.

+0

bpeterson - спасибо, элегантный код и _very_ классное решение. jQuery rock, esp, когда открытая функциональность настолько проста. –

 Смежные вопросы

  • Нет связанных вопросов^_^