2013-12-02 2 views
0

Я использую плагин datapicker jQuery, и я использую функцию noWeekends для отключения выходных. Единственная проблема: мне нужно включить один выходной день. Кто-нибудь знает как это сделать? Вот код, я использую ...jQuery datapicker noWeekends разрешает один выходной день

var disabledDays = [<?php echo rtrim($daysClosed, ","); ?>]; 

function nationalDays(date) { 
    var m = date.getMonth(), 
     d = date.getDate(), 
     y = date.getFullYear(); 

    for (i = 0; i < disabledDays.length; i++) { 
     if ($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) { 
       return [false, disabledDays[i][2] + '_day']; 
      } 
     } 
     return [true, '']; 
} 

function noWeekendsOrHolidays(date) { 
    var noWeekend = jQuery.datepicker.noWeekends(date); 
    return noWeekend[0] ? nationalDays(date) : noWeekend; 
    jQuery('.cart-contents i').html(noWeekend); 
} 

jQuery(document).ready(function(){ 

    jQuery('#e_deliverydate').datepicker({ 
     dateFormat: 'dd/mm/yy', 
     beforeShowDay: noWeekendsOrHolidays, 
     minDate:<?php echo $delivMin; ?>, 
     maxDate:'<?php echo $oneYearOn; ?>' 
    }); 

}); 

Заранее спасибо :)

ответ

1

fiddle Demo

$("#datepicker").datepicker({ 
    beforeShowDay: function (date) { 
     var day = date.getDay(); 
     return [(day != 6)]; //0-Sunday 6-Saturday 
    } 
}); 


Обновлено после комментария OP в

Отключить все 28th Dec

fiddle Demo

var array = ["28-12"]; 
$("#datepicker").datepicker({ 
    beforeShowDay: function (date) { 
     var string = jQuery.datepicker.formatDate('dd-mm', date); 
     return [array.indexOf(string) == -1] 
    } 
}); 


Отключить 28th Dec 2013

fiddle Demo

var array = ["28-12-2013"]; // add dates you want to disable here 
$("#datepicker").datepicker({ 
    beforeShowDay: function (date) { 
     var string = jQuery.datepicker.formatDate('dd-mm-yy', date); 
     return [array.indexOf(string) == -1] 
    } 
}); 


Чтобы включить 28th Dec

Updated fiddle Demo

$("#datepicker").datepicker({ 
    beforeShowDay: function (date) { 
     var string = jQuery.datepicker.formatDate('dd-mm-yy', date); 
     if (string == "28-12-2013") { 
      return [true]; 
     } else { 
      var day = date.getDay(); 
      return [(day != 6)]; 
     } 
    } 
}); 
+0

Спасибо за ответ, но это не помогает. У меня уже есть функция «noWeekendsOrHolidays», которая отключает все выходные и любые дни, которые я определяю. Я должен был объяснить, что я не хочу включать все субботы, только один день - 28 декабря. Спасибо –

+0

@ StuartTaylor-Jones проверит обновленный ответ с демонстрацией скрипта. –

+0

Еще раз спасибо за ответ. Но это все еще не так. Посмотрите на мой код, который я опубликовал в исходном вопросе, и вы увидите, что я отключил ВСЕ выходные и специальные даты, определенные в 'disabledDays'. Суббота 28 декабря, когда выходные дни отключены с моим кодом, я хочу знать, как включить его. Спасибо –

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