【发布时间】:2013-11-19 07:10:52
【问题描述】:
我在网站上运行了一个 jQuery UI 日期选择器,其中仅根据之前的下拉选择启用某些日期(我使用 MySQL 查询来获取全年的日期)。一旦收到日期,它就会被传递给日期选择器,并且仅启用这些日期。我已经实现了预期的行为,但问题是当我获取全年的日期时,MySQL 查询需要很长时间才能获取日期。
我现在想要实现的是查询前 3 个月的日期并在 datepicker 上启用它们,一旦用户导航到接下来 3 个月的第 3 个月查询并在 datepicker 中设置日期。这样我不会对数据库施加压力,而且日历加载速度也会更快。
这可能吗?
代码很长,我发布了启用/禁用日期的部分:
var datepickerDateFilter = function (date) {
var month = date.getMonth() + 1;
var day = date.getDate();
var date_string = date.getFullYear() + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day;
if ($courseDates.length > 0 && $.inArray(date_string, $courseDates) != -1) {
return [true];
}
return [false];
};
$("#datepicker").datepicker({
dateFormat: 'dd-mm-yy',
beforeShowDay: datepickerDateFilter
});
//code goes here
【问题讨论】:
-
从未见过 jQuery UI 日历。发布文档链接。你是说日期选择器吗?
-
您是否尝试过使用 beforeShowDay (api.jqueryui.com/datepicker/#option-beforeShowDay) 来获得正确的月份/天数?它也应该在浏览到另一个月份时触发。我的意思是;也许您可以跟踪已加载的月份,并根据需要加载新的月份。
-
之前ShowDay用过。将更新一些代码。
-
charlietfl:抱歉。我说的是日期选择器 :)
-
有什么方法可以通过 ajax 检索日期吗?因此,如果特定月份尚未加载它们,您可以从 beforeShowDay 中获取它们。
标签: javascript jquery ajax jquery-ui jquery-ui-datepicker