2010-07-15 141 views
0

我已經得到了這個答案工作,但我想擴展它: jQuery UI Datepicker - Disable specific daysjQueryUI的日期選擇器noWeekendsAndHolidaysAndWeekDay

我卡上添加這個方法來解決:

beforeShowDay: function(date){ 
     var day = date.getDay(); 
     return [(day != 5)]; 
    } 

到noWeekendsAndHolidays。我如何添加?

因此,日期選擇器beforeShowDay選擇將有3個 「假」 的回報:

  1. 沒有周末
  2. 沒有節假日
  3. 沒有選擇工作日(「我們正在關閉週五, 太「)

帶前兩個選項的工作代碼(我需要第三個幫助):

$(document).ready(function(){ 

$("#datepicker").datepicker({ 
    noWeekends: true, 
    numberOfMonths: 2, 
    beforeShowDay: noWeekendsOrHolidays, 
    minDate: '-1M -1W -1D', 
    maxDate: '+1M', 
    firstDay: 1 
}); 


function nationalDays(date){ 
    var natDays = [[7, 26, 'Shop-Closed']]; 
    for (i = 0; i < natDays.length; i++) { 
     if (date.getMonth() == natDays[i][0] - 1 && 
      date.getDate() == natDays[i][1]) { 
       return [false, natDays[i][2] + '_day']; 
      } 
    } 
    return [true, '']; 
} 

function noWeekendsOrHolidays(date){ 
    var noWeekend = $.datepicker.noWeekends(date); 
    if (noWeekend[0]) { 
     return nationalDays(date); 
    } 
    else { 
     return noWeekend; 
    } 
}  
}); 

在此先感謝您。

回答

1

是否這樣?

function noWeekendsOrHolidays(date){ 
    var noWeekend = $.datepicker.noWeekends(date); 
    if (noWeekend[0]) { 
     var isNotFriday = noFridays(date); 
     if (isNotFriday[0]) { 
      return nationalDays(date); 
     } 
     else { 
      return isNotFriday; 
     } 
    } 
    else { 
     return noWeekend; 
    } 
} 

function noFridays(date) { 
    var day = date.getDay(); 
    return [(day != 5),""]; 
} 
+0

是的,正好。感謝西門子。 – orolo 2010-07-15 20:43:48

相關問題