2017-02-23 6 views
2

Gibt es eine Möglichkeit, die Kalenderauswahl in Silverstripe so festzulegen, dass keine Daten in der Vergangenheit ausgewählt werden können?Silverstripe-Kalenderauswahl, um keine vergangenen Daten anzuzeigen

Soweit ich sagen kann, verwendet es den jQuery DatePicker, aber ich bin mir nicht sicher, wie man die vergangenen Daten einschränkt.

DateField::create("Date","Date") 
      ->setAttribute('placeholder','eg 2017-01-01') 
      ->setConfig('showcalendar', true), 

Antwort

3

Sie können Konfigurationsoptionen an den Datepicker passieren:

DateField::create("Date","Date") 
    ->setConfig('showcalendar', true) 
    ->setConfig('min', date('Y-m-d')) 
    ->setDescription('') 
    ->setAttribute('data-number-of-months', 3); 

->setConfig('min', date('Y-m-d')) sagen jQueryUI Picker, um ein minimales Datum (heute) zu verwenden. Mit Datenattributen können Sie auch andere Konfigurationen an den Picker übergeben, im obigen Fall zeigt es drei Monate gleichzeitig. Dies wird an datepicker config übergeben.

Beachten Sie, dass die datepicker camel case-Konfiguration "numberOfMonths" mit Bindestrichen wie "data-number of months" geschrieben werden muss.

Siehe auch datepicker configuration

+0

Vielen Dank. Dies ist perfekt. – Craig

+0

Hatte eine harte Zeit damit vor einigen Wochen. Ich habe zwei Pflücker, die sich gegenseitig für das Min/Max-Datum (Ankunft und Abfahrt) einstellen sollten. Dies ersetzt nicht die Backend-Validierung, ist aber ein wenig benutzerfreundlicher. – wmk

Verwandte Themen