jquery ui Datenauswahlbereich für mehrere Datumsangaben ohne Wochenenden

8

Ich verwende diese Mehrfachauswahl-Auswahl . Ist es möglich, den Datumsbereichsmodus zu verwenden, in dem keine Wochenenden ausgewählt werden?

Ich habe schon Multidatepicker gemacht, wo Wochenenden blockiert sind und wo der Benutzer nur 5 Tage auswählen kann, aber das ist nicht mein Ziel. Ich möchte diese Funktionalität: Wenn ein Benutzer auf ein bestimmtes Datum klickt, werden fünf Tage im Bereich ohne Wochenendtage hervorgehoben ...

Mein Code unten:

%Vor%

Jetzt bin ich ziemlich nah an meiner eigenen Lösung:

Ich zähle alle Tage, die aktiviert werden müssen und alle neuen Tage, die ausgewählt werden müssen, wenn ein Wochenende im Bereich von Tagen ist.

Ich füge meine neue Methode in multidatepicker.js daysRangeWithoutWeekends hinzu, wo ich alle neuen und deaktivierten Tage zähle. Dann verwende ich zwei foreach Schleifen, wo ich neue Daten deaktivieren und aktivieren:

%Vor%

value ist Date-Objekt. Die erste foreach-Schleife funktioniert einwandfrei und entfernt alle markierten Wochenenden, aber die zweite Schleife funktioniert nicht. Es gibt mir einen Fehler zurück:

%Vor%

Weißt du warum?

Für alle, die Sie nicht verstehen, was mein Ziel ist:

Ich muss 5 Tage in Reichweite ohne Wochenenden wählen, wenn ich auf 21.6.2012 date 21.6., 22.6, 25.6, 26.6., 27.6 klicke. muss ausgewählt sein.

Mit dem oberen Code schaffe ich es, die hervorgehobene Klasse an Wochenenden zu entfernen, aber ich weiß nicht, warum die zweite Schleife (siehe oberer Code) 26.6.2012 und 27.6.2012 nicht markiert ist.

    
Gasper 08.06.2012, 06:10
quelle

5 Antworten

0

Zunächst ist das keine generische Lösung. Ich hatte keine Zeit für eine generische Lösung. Meine Lösung ist, wenn Sie 5 Tage in Reichweite ohne Wochenenden wählen müssen.

in jquery-ui.multidatepicker.js in der Methode onSelect (ca. 81 Zeile) add:

%Vor%

in jquery-ui.multidatepicker.js in der toogleDate-Methode (ca. 431 Zeile) vor case 'daysRange' hinzufügen:

%Vor%

in jquery-ui.multidatepicker.js in setMode (ca. 473row) vor dem Fall 'daysRange' add:

%Vor%

calander ist init mit:

%Vor%

Wenn jemand generischen Algorithmus macht, teilen Sie ihn bitte =)

    
Gasper 13.06.2012 10:24
quelle
0

Warum versuchst du das nicht

? %Vor%

statt dessen

%Vor%     
Ateszki 13.06.2012 16:03
quelle
0

Vielleicht funktioniert nur das Durchschleifen und Ändern des Array-Inhalts?

%Vor%     
pete 18.06.2012 13:57
quelle
0

Ändern Sie den Fall daysRange mit dem folgenden Code

Fall 'TageRange':

%Vor%     
Adi 19.08.2015 05:37
quelle
0

Deaktivieren Sie nur Sonntag: Fügen Sie die Option vorShowDay hinzu: noWeekendsOrHolidays

%Vor%

Wenn Sie einen Fehler in der Konsole haben: Fehler: Leeres Array von empfangenen Daten. in jquery-ui.multidespicker.js Suchen Sie nach "addDates: function (dates, type)" und fügen Sie return true hinzu;

%Vor%     
Vlad 23.11.2016 08:45
quelle