0

我正在开发一个 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 不可点击。

问候

4

1 回答 1

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, ''];
    }
于 2012-05-30T13:14:27.810 回答