2016-09-29 21 views
0

Ich versuche, vergangene Daten im jquery ui datepicker auszugrauen, aber den Benutzer in der Lage, sie auszuwählen.jQuery Datepicker - deaktivieren (nicht deaktivieren) vergangene Daten

Das einzige, was etwas Ähnliches erlaubt, ist die Option minDate: 0, aber es wurde entwickelt, um vergangene Daten vollständig zu deaktivieren. Jquery markiert sie nicht einmal mit einer anderen Klasse, um einfach einen anderen Stil anzuwenden.

Antwort

1

Haben Sie beforeShowDay Callback-Funktion versucht?

Hier ist eine kurze Probe: https://jsfiddle.net/salih0vicX/wnenpfpx/


$("#datepicker").datepicker({ 
     beforeShowDay : function(date) 
     { 
      var today = new Date(); 
      var isToday = (today>date); 
      if(isToday) return [true, 'myClass', 'Some caption (if needed)']; 
      else return [true, '', '']; //default ... you can pass false to disable this date 
     }, 
    }); 
+0

Danke. So wie es heute auch berücksichtigt wird, hat das date Objekt keine Zeit, während Date() tut. Ich versuche, es mit ISO 8601 zu ändern, um die Daten zu vergleichen. – Fehu

+0

hat es perfekt funktioniert. Jetzt habe ich eine neue Idee, aber ich muss den HTML-Code innerhalb eines Tags manipulieren. Es ist möglich? – Fehu

+0

@Fehu Können Sie mir ein Beispiel dafür geben, was Sie erreichen möchten? Nur bestimmte Tage oder jeder im Kalender? Bitte gib mir ein Beispiel .. Danke. – salih0vicX

1

Dies sollte das tun, was Sie wollen:

$('.datepicker').datepicker({ 
    beforeShowDay: function (date) { 
     var d = date.getTime(); 
     if (d < new Date()) { 
      return [true, 'myClassForPastDates', '']; 
     } else { 
      return [true, '']; 
     } 
    } 
}); 

In der Funktion können Sie den Klassennamen, den Sie anhängen möchten zurückkehren. Aber Sie müssen nachsehen, wie Sie das CSS der Standardthemen überschreiben.

http://jsfiddle.net/97L93a3h/21/

Verwandte Themen