2017-03-08 9 views
1

Ich habe den jQuery DatePicker in meine Homepage integriert. Das Problem ist, dass ich Wochenenden mit der Funktion beforeShowDay nicht deaktivieren kann, da ich bereits beforeShowDay verwende, um bestimmte Daten zu markieren. Ich hoffe, es gibt eine Möglichkeit, Wochenenden ohne die beforeShowDay Funktion zu deaktivieren.jquery datepicker Wochenenden deaktivieren ohne vorherShowDay

$(function() { 
    var eventDates = {}; 
    <?php 
    for ($i = 0; $i <= sizeof($view) - 1; $i++) 
    { 
     $date = explode(":" , $view[$i]); 
     echo "eventDates[ new Date('" . $date[1] . "')] = new Date('" . $date[1] . "');"; 
    } 
    ?> 

    $("#datepicker").datepicker({ 
    firstDay: 1, 
    dateFormat: "yy-mm-dd", 
    maxDate: new Date, 
    minDate: "2016-03-08", 
    dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], 
    dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], 
    dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], 
    onSelect: function(dateText, inst) { 
     $("#datepicker_value").val(dateText); 
     $(this).parent('form').submit(); 
    }, 
    beforeShowDay: function(date) { 
     var highlight = eventDates[date]; 
     if (highlight) { 
     return [true, "eventyellow", '']; 
     } else { 
     return [true, '', '']; 
     } 
    } 
    }); 
}); 

Antwort

0

Sie noch beforeShowDay verwenden können, müssen Sie nur mit, dass Ihre aktuelle Logik kombinieren Wochenenden auszuschließen.

Angenommen, Sie verwenden den jQueryUI-Datepicker, dann verfügt er über eine integrierte Methode zum Ausschließen von Wochenenden - $.datepicker.noWeekends();. Versuchen Sie folgendes:

beforeShowDay: function(date) { 
    // exclude weekends 
    if (!$.datepicker.noWeekends(date)[0]) 
    return [false, '', ''];  

    // highlight dates 
    return [true, eventDates[date] ? 'eventyellow' : '', '']; 
} 

Working example

+0

es nicht für mich funktioniert. Wenn ich ur code (Copy & Paste) verwende, werden alle Daten deaktiviert. – Simon

+0

Entschuldigung - ich hatte die Logik rückwärts. Ich habe die Antwort aktualisiert und ein Arbeitsbeispiel hinzugefügt. –

+0

wow. Danke für deine Hilfe. Es klappt. – Simon

Verwandte Themen