非常感谢您的阅读。
我正在使用 Struts 编写一个 Web 应用程序。
我使用 JQuery datepicker 1.7 作为用户 View 侧边栏上的日历。 (这是我能找到的最好的选择)
我想在日历中突出显示从数组中的多个提醒的初始日期 (startDate) 到结束日期 (endDate) 的一组天。这样,用户将能够在应用程序的日历上看到他剩余的所有可用天数,以便对每个提醒采取行动。
我已经有了一系列提醒,可以从 View 中访问它们。感谢这里一位好人的指导,我能够正确地实现它。
这是我的日期选择器的 JavaScript 函数:
$(function(){
$('#datepicker').datepicker({
flat: true,
numberOfMonths: [1,1],
dateFormat: 'dd/mm/yy',
beforeShowDay: highlightDays
});
还有另一个函数,即highlightDays,它给我带来了麻烦:
它的参数是数组“reminders”,其中reminders[i].start是提醒i的开始日期,reminders[i].end是提醒i的结束日期,其中i =数组中提醒的数量。
function highlightDays(reminders) {
for (var i = 0; i < reminders.length; i++) {
/** Below:
*If startDate is smaller than endDate,
*then highlight the days inbetween.
*/
if (new Date(reminders[i].start).toString() <=
new Date(reminders[i].end).toString() ){
return [true, 'ui-state-highlight'];
}
} //Otherwise do not highlight
return [true, ''];
}
问题是当我打开应用程序并登录时,日历甚至不会显示。并且 Apache 日志或输出不显示任何错误。我想知道,你认为我哪里错了?我会继续调查,但我非常感谢您的意见!
P.D:我可以访问提醒数组的元素(endDate、startDate)并在屏幕上打印这些日期,这意味着提醒数组不为空。
再次感谢您花时间阅读。
最佳答案
来自http://jqueryui.com/demos/datepicker/#event-beforeShowDay
该函数将日期作为参数,并且必须返回一个数组,其中[0]等于true/false,指示该日期是否可选,[1]等于CSS类名(s) 或 '' 表示默认显示,[2] 该日期的可选弹出工具提示。在显示日期选择器中的每一天之前都会调用它。
您的回调函数不接受单个日期作为参数,它采用日期范围数组。
您可能想弄清楚如何在提醒值循环内调用highlightdays 函数。
关于java - Struts:突出显示日历中的日期范围 (JQuery/Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764681/