无法在jQuery日历上禁用特定日期

时间:2012-05-30 13:04:29

标签: javascript jquery asp.net jquery-ui

我正在开发一个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, ''];
    }
});

http://jsfiddle.net/Skjrn/14/

如果有人可以解决这个问题,我会很感激,因为数组中提到的make无法点击。

问候

1 个答案:

答案 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, ''];
    }