2016-05-20 12 views
4

Ich benutze die Pickadate-Bibliothek, so dass der Benutzer Daten auswählen kann. Alle Daten sollten standardmäßig deaktiviert sein. Dies funktioniert, indem disabled: [true] hinzugefügt wird.Deaktivieren Sie Daten in Pickadate (JavaScript) nach dem Aktivieren bestimmter Daten

var myPicker=$("#inputDatetime").pickadate(
    { 
     format:"dd. mmmm yyyy", 
     formatSubmit:"yyyy-mm-dd", 
     min:dt, 
     selectYears:2, 
     close:"Schliessen", 
     today:"Heute", 
     selectMonths:!0, 
     disable: [true] 
    } 
), picker = myPicker.pickadate("picker"); 

Danach bin ich damit einige dates:

picker.set('disable', activeDays); 

Jetzt möchte ich in der Lage sein, die schwarze Liste gesetzt Wochentage zu haben. Zum Beispiel sollten alle montags und alle Mittwochs immer geblockt werden. Ich habe diese Daten in einer anderen Variable:

var disabledDates = [1, 3]; 

Wie kann ich sicherstellen, dass der Wochentag deaktiviert ist nach, dass ich einige spezifischen Daten aktiviert?

+0

aussehen, wenn es das ist, was Sie wollen. http://jsfiddle.net/2j4f9dh8/2/ –

+0

Ja, das sieht ziemlich gut aus. Bitte stelle es in eine Antwort. – doonot

+0

Ich habe eine Antwort dafür hinzugefügt. :-) –

Antwort

1

Siehe den Code unten:

var $input = $("#datepicker").pickadate({ 
    format: 'dd-mm-yyyy', 
    formatSubmit: 'dd-mm-yyyy', 
    editable: false, 
    min: new Date(), 
    firstDay: 0 
}); 

var picker = $input.pickadate('picker'); 
picker.set("disable", [ 
    1, 
    [2016, 5, 29], 
    [2016, 6, 9], 
    [2016, 8, 8] 
]); 

picker.set("enable", [ 
    [2016, 5, 19], 
    [2016, 5, 26] 
]); 

Sie hier testen: http://jsfiddle.net/2j4f9dh8/2/

0

können Sie get Methode verwenden, um aufgelistet bekommen bereits aktiviert und deaktiviert Termine und drücken Sie einfach Wochentage Indizes Sie deaktivieren möchten:

picker.set('disable', activeDays); 
var disabledDates = picker.get('disable').push([1, 3]); 
picker.set('enable', true); // Enable all days to be sure we will not flip disabled/enabled states 
picker.set('disable', disabledDates); 

nicht Vergessen Sie Daten zu aktivieren, bevor sie zu deaktivieren. In diesem Fall werden sie nicht zu entgegengesetzten Werten wechseln.

+0

Danke, aber das gibt 'TypeError: datesToDisable.map ist keine Funktion. (In 'datesToDisable.map', 'datesToDisable.map' ist undefiniert) ' – doonot

+0

@doonot Hast du deine Seite live Beispiel irgendwo? – antyrat

+0

@doonot oder geben Sie Ihren vollständigen JS-Code an – antyrat