2017-03-08 112 views
1

我已經在我的主頁中集成了jQuery DatePicker。問題是我不能使用beforeShowDay函數禁用週末,因爲我已經使用beforeShowDay來標記特定的日期。我希望有可能在沒有beforeShowDay函數的情況下禁用週末。jquery datepicker禁止beforeShowDay的週末

$(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, '', '']; 
     } 
    } 
    }); 
}); 

回答

0

您仍然可以使用beforeShowDay,你只需要你當前的邏輯與結合不包括週末。

假設你使用jQueryUI日期選擇器,那麼它有一個內置的方法來排除週末 - $.datepicker.noWeekends();。試試這個:

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

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

Working example

+0

它不會爲我工作。 如果我使用你的代碼(複製和粘貼),所有日期將被禁用。 – Simon

+0

道歉 - 我的邏輯倒退了。我更新了答案並添加了一個工作示例。 –

+0

哇。感謝您的幫助。有用。 – Simon

相關問題