2010-07-15 5 views
0

Я получил этот ответ работает, но я хотел бы продлить его: jQuery UI Datepicker - Disable specific daysjQueryUI Datepicker noWeekendsAndHolidaysAndWeekDay

Я застрял на добавление этого метода к решению:

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

к noWeekendsAndHolidays. Как я могу добавить это?

Итак, DatePicker 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

Смежные вопросы