2015-09-08 3 views
1

Я пытаюсь заставить мой jQuery Datepicker разрешить выбирать только месяцы мая и октября и увеличивать или уменьшать год в зависимости от того, продвигается ли пользователь вперед через месяцы или идти назад.jQuery Datepicker - отображать только определенные месяцы (не диапазон)

До сих пор я приближаюсь к этой цели с помощью следующего кода, но не зная, нажимает ли пользователь перемотка вперед или назад на селектор месяца datepicker. Я не могу знать, нужно ли увеличивать или декорировать значение года.

$("#ApplicantExpectedStartDate").datepicker({ 
    onChangeMonthYear: function (year, month, inst) { 
     // Force datepicker to display only May and October 

     if ((month > 5) && (month < 10)) { 
      $(this).datepicker("setDate", new Date(year, 9, 1)); 
      $(this).datepicker("refresh"); 
     } 

     if (month > 10) { 
      $(this).datepicker("setDate", new Date(year, 4, 1)); 
      $(this).datepicker("refresh"); 
     } 
    }, 
    dateFormat: "dd/mm/yy", 
    changeYear: true 
}); 

Есть ли какие-либо события, что огонь непосредственно перед onChangeMonthYear, что я мог бы использовать для того, чтобы сравнить новую дату старой на средства сравнения? Есть ли более простой способ сделать это, чем я сейчас пытаюсь?

jsfiddle здесь: http://jsfiddle.net/jfejhjs8/4/

+0

Можете ли вы предоставить jsfiddle ссылку – Mahadevan

+0

Я думаю, что такая же проблема решена http://stackoverflow.com/questions/2208480/jquery-ui-datepicker-to-show-month-year-only –

ответ

0

Это не очень изящный, но это дает результат я хочу.

$("#ApplicantExpectedStartDate").datepicker(
        { 
         onChangeMonthYear: function (year, month, inst) { 

          // Force datepicker to display only May and October 

          // Navigating FROM May 
          if (month == 4) { 
           $(this).datepicker("setDate", new Date(year - 1, 9, 1)); 
           $(this).datepicker("refresh"); 
          } 

          if (month == 6) { 
           $(this).datepicker("setDate", new Date(year, 9, 1)); 
           $(this).datepicker("refresh"); 
          } 

          // Navigating FROM October 
          if (month == 9) { 
           $(this).datepicker("setDate", new Date(year, 4, 1)); 
           $(this).datepicker("refresh"); 
          } 

          if (month == 11) { 
           $(this).datepicker("setDate", new Date(year + 1, 4, 1)); 
           $(this).datepicker("refresh"); 
          } 
         }, 
         dateFormat: "dd/mm/yy", 
         changeYear: true 
        } 
      ); 
Смежные вопросы