2013-04-23 6 views
0

Я хотел бы показать количество показанных месяцев в зависимости от количества выбираемых дней.JQuery Datepicker диапазон дат и месяцы

Например, если у меня есть 15 дней для выбора, и дата начинается с сегодняшнего дня (23/04/2013) Я бы хотел, чтобы только апрель и май отображались как количество месяцев, показанных на выбор.

Аналогичным образом, если число дней, в которые вы выбираете 60, я хотел бы показать апрель, май и июнь количество показанных месяцев.

Итак, по существу, как мне указать количество показанных месяцев, зависит от количества выбираемых дней?

Большое спасибо заранее.

мой плагин

$.fn.showCalendar = function(options){ 
    var defaults ={ 
     selector : "#date-selector", 
     calendarIcon : "./images/icons/calendar.gif", 
     numberOfSelectableDays : "+60D", 
     dateFormat: "dd/mm/yy", 
     numberOfMonths : 3, 
     daySelector : "#day", 
     monthSelector : "#month", 
     yearSelector : "#year" 
    } 

    var $this = $(this); 
    var params = $.extend({},defaults, options); 

    var getDateFromDropDowns = function(){ 
     var dateOnDropDowns = new Date($(params.daySelector).val(),$(params.monthSelector).val(),$(params.yearSelector).val()); 
     return dateOnDropDowns; 
    } 


    return $this.each(function(){ 
     $this.datepicker({ 
      showOn: "button", 
      buttonImage: params.calendarIcon, 
      minDate: 0, 
      maxDate: params.numberOfSelectableDays, 
      dateFormat: params.dateFormat, 
      buttonImageOnly: true, 
      numberOfMonths: params.numberOfMonths, 
      setDate : getDateFromDropDowns, 
      onClose: function(dateText, inst) { 
       $(params.yearSelector).val(dateText.split('/')[2]); 
       $(params.daySelector).val(dateText.split('/')[0]); 
       $(params.monthSelector).val(dateText.split('/')[1]); 
      } 
     }); 
    }); 
}, 
+0

Можете ли вы сказать нам, что вы уже пробовали? –

+0

Предлагаю посмотреть код, связанный с вопросом здесь. вместо ссылки на другой вопрос –

+0

Отредактировано и добавлено на страницу :) – Chin

ответ

0

Обновления в соответствии с комментарием Чтобы обновить количество месяцев, которое будет показано в то время на экране
вы можете использовать этот код • Вычисляется количество месяцев

var d = new Date(); 
var n = d.getDate(); 
var total=n+60; 
var numberOfMonthsVal=Math.floor(total/30)+1; 

и в $this.datepicker({numberOfMonths:numberOfMonthsVal


С JQuery UI Выбор даты

$(function() { 
    $("#datepicker").datepicker({ minDate: -20, maxDate: "+1M +10D" }); // Thiw will sow the dates Today -20 to today + 1 Month +10 days 
}); 

В вашем случае, если вы хотите, чтобы показать говорить дальше 60 дней с сегодняшнего дня?

$(function() { 
    var day=new Date(); 
    $("#datepicker").datepicker({ minDate: day, maxDate: (day+60) }); 
}); 

http://jqueryui.com/datepicker/#min-max

Так что в вашем плагине, когда вы вызываете $this.datepicker({ проход ниже значения

 minDate: myDate, 
     maxDate: (myDate+60) 

где mydate is actual Date object like var mydate=new Date();

+0

Это число месяцев, показанных пользователю на одном и том же экране рядом друг с другом в данный момент, когда я буду. Я думаю, вы, возможно, неправильно поняли этот вопрос. Спасибо, что посмотрели хотя :) – Chin

+0

Тогда вы можете clauclate 'numberOfMonths' что-то вроде этого ... ' var d = new Date(); var n = d.getDate(); var total = n + 60; // 60 o 15 дней, которые вы хотите добавить var numberOfMonths = (всего/30) +1; ' –

+0

Я в конечном итоге написал это самостоятельно, используя несколько пользовательских функций. Спасибо за помощь :) – Chin