Is there any (easy) way to set the jQuery UI Datepicker to disallow selection of specific, predetermined days?
I was able to get this approach working, however, it p
var unavailableDates = ["19-8-2014","14-9-2014"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" +date.getFullYear();
if ($.inArray(dmy, unavailableDates) < 0) {
return [true,"","Book Now"];
} else {
return [false,"","Booked Out"];
}
}
$('#iDate').datepicker({ beforeShowDay: unavailable });
Live Demo: http://jsfiddle.net/vfod0krm/
beforeShowDay: $.datepicker.noWeekends,
will be
beforeShowDay: noWeekendsOrHolidays,
The problem with IE is most probably on the following line:
altField: '#alternate',
});
Try to remove the comma symbol and it should work.
Here is a way to disable specific dates from being selected:
var unavailableDates = ["9-5-2011","14-5-2011","15-5-2011"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) < 0) {
return [true,"","Book Now"];
} else {
return [false,"","Booked Out"];
}
}
$('#iDate').datepicker({ beforeShowDay: unavailable });
Source: jQuery - Datepicker - Disable Specific Dates
Have you tried declaring natDays properly with the 'var' keyword in front?
Also - you have an extra comma at the end of your natDays definition.
natDays[i][2] won't work as your the arrays only have 2 items in them - try just ''
Additionally, you'll want to set your beforeShowDay function name correctly - doesn't look like it's even calling your custom function
You can use the beforeShowDay
option. I needed to disable any day past the 28th of the month. Here is my code.
$('.datepicker').datepicker({
dateFormat: "yy-mm-dd",
beforeShowDay: function(date) {
var day = date.getDate();
if (day > 28) {
return [false];
} else {
return [true];
}
}
});
Here is more information about it: http://api.jqueryui.com/datepicker/#option-beforeShowDay
The date variable passed into the beforeShowDay callback is a JavaScript date object, so it can be formatted using various libraries, a timestamp can be retrieved using date.getTime(), etc.