我正在开发一个asp.net应用程序,我需要禁用从数据库中提取的某些日期。
在jsFiddle Works下面的脚本,虽然它只突出显示具体日期,但是因为它仍然是可点击的,所以不能禁用日期。
HTML:
<input id="txtBookDate" type="text" />
JavaScript的:
var holiDays = [[2012, 06, 06, 'New Years Day'], [2012, 06, 14, 'Pongal'], [2011, 12, 25, 'Christmas Day']];
$(function () {
$('#txtBookDate').datepicker({
dateFormat: "yy-mm-dd",
minDate: "+2d",
maxDate: "+30d",
beforeShowDay: setHoliDays
});
// set holidays function which is configured in beforeShowDay
function setHoliDays(date) {
for (i = 0; i < holiDays.length; i++) {
if (date.getFullYear() == holiDays[i][0]
&& date.getMonth() == holiDays[i][1] - 1
&& date.getDate() == holiDays[i][2]) {
return [true, 'holiday', holiDays[i][3]];
}
}
return [true, ''];
}
});
如果有人可以解决这个问题,我会很感激,因为数组中提到的make无法点击。
问候
答案 0 :(得分:0)
这是因为你在检查假期时传递的是第一个参数。
请参阅http://jsfiddle.net/gRoberts/Skjrn/16/
function setHoliDays(date) {
for (i = 0; i < holiDays.length; i++) {
if (date.getFullYear() == holiDays[i][0]
&& date.getMonth() == holiDays[i][1] - 1
&& date.getDate() == holiDays[i][2]) {
return [false, 'holiday', holiDays[i][3]]; // changed from [true, 'holiday', holiDays[i][3]];
}
}
return [true, ''];
}