Struts:突出显示日历中的日期范围(JQuery/Javascript)

Struts: Highlighting Date Range in Calendar (JQuery/Javascript)

本文关键字:范围 JQuery Javascript 日期 显示 日历 Struts      更新时间:2023-09-26

非常感谢您的阅读。

我正在Struts中编写一个web应用程序。

我使用JQuery日期选择器1.7作为用户视图侧边栏上的日历。(这是我能找到的最好的选择)

我想在日历中突出显示一组天数,从数组中的几个提醒的初始日期(startDate)到结束日期(endDate)。这样,用户将能够在应用程序的日历上看到他剩下的所有可用天数,以便对他的每个提醒采取行动。

我已经有了一系列提醒,我可以从视图中访问这些提醒。多亏了这里一位伟人的指导,我才得以妥善实施。

这是我为日期选择器编写的javascript函数:

$(function(){
            $('#datepicker').datepicker({
                flat: true,
                numberOfMonths: [1,1],
                dateFormat: 'dd/mm/yy',
                beforeShowDay: highlightDays
            });

还有另一个功能,即highlightDays,它给我带来了麻烦:

它的参数是数组"提醒",即提醒[i].start是startDate,提醒[i].end是提醒i的endDate,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-展会前

该函数以日期为参数,并且必须返回一个数组,其中[0]等于true/false表示该日期是否可选择,[1]等于CSS类名或默认表示形式的",以及[2]该日期的可选弹出工具提示。在显示日期选择器之前,每天都会调用它。

回调函数不接受单个日期作为参数,而是接受一个日期范围数组。

您可能想知道如何在reminder值的循环中调用highlightdays函数。