2012-03-28 11 views
1

Ich möchte jQuery Datepicker für nicht doppelte Tage aus anderen Monat in einigen anderen Monat im Multi-Monat-Modus ändern (siehe Bild unten, möchte ich rot markierte Tage entfernen). Kannst du mir helfen?jQuery Datepicker Multi-Monat-Modus doppelte Wochen

enter image description here

Wie Sie bitten, dies ist mein Code für den Kalender:

$(document).ready(function(){ 
    var weeks = new Array(); 

    function inWeeks(startDate) { 
     for (var i in weeks) { 
      if (weeks[i].getTime() == startDate.getTime()) return true; 
     } 
     return false; 
    } 

    function removeWeek(startDate) { 
     for (var i in weeks) { 
      if (weeks[i].getTime() == startDate.getTime()) { 
       weeks.splice(i, 1); 
       return; 
      } 
     } 
    } 

    function addWeek(startDate) { 
     weeks.push(startDate); 
    } 

    var selectCurrentWeek = function() { 
     window.setTimeout(function() { 
      $('.week-picker').find('.ui-datepicker-current-day a').addClass('ui-state-active') 
     }, 1); 
    } 

    $('.week-picker').datepicker({ 
     numberOfMonths: 2, 
     showOtherMonths: true, 
     selectOtherMonths: true, 
     hideIfNoPrevNext: true, 
     firstDay: 1, 
     onSelect: function(dateText, inst) { 
      var date = $(this).datepicker('getDate'); 
      var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 1); 
      //var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 6); 

      if (inWeeks(startDate)) { 
       removeWeek(startDate); 
      } else { 
       addWeek(startDate); 
      } 

      selectCurrentWeek(); 
     }, 
     beforeShowDay: function(date) { 
      var cssClass = ''; 
      for (var i in weeks) { 
       var startDate = weeks[i]; 
       var endDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() - startDate.getDay() + 7); 
       if(date >= startDate && date <= endDate) 
        cssClass = 'ui-datepicker-selected-week-day'; 
      } 
      return [true, cssClass]; 
     }, 
     onChangeMonthYear: function(year, month, inst) { 
      selectCurrentWeek(); 
     } 
    }); 
}); 
+0

Welchen Datepicker verwenden Sie? Wie sieht dein Code aus? –

+0

Standard jQuery datepicker (jquery-1.6.2, jquery-ui-1.8.14.custom) –

+4

Wie @AndrewWhitaker sagt, würden wir Sie brauchen, um ein wenig von Ihrem Code zu veröffentlichen. Was Sie tun möchten, funktioniert einwandfrei auf der Demo-Seite von jQuery ... http://jqueryui.com/demos/datepicker/#multiple-calendars – Jibou

Antwort

1

Sie von diesen beiden Linien loswerden sollte:

showOtherMonths: true, 
selectOtherMonths: true, 

Die Option showOtherMonths „Anzeigedaten in anderen Monaten (nicht auswählbar) am Anfang oder Ende des aktuellen Monats "und die selectOtherMonths" Wenn in anderen Monaten echte Tage angezeigt werden vor oder nach dem aktuellen Monat wählbar. "