我的web应用程序需要一个交互式日历。我以前没有使用过任何日历小工具,所以在这里我希望能为您挑选专家的头脑。
以下是我的要求:
- 日历显示在月份视图中
- 将某些日期灰显以将其排除在任何事件之外的能力
可选但很好:
- 用户只需在日历上单击几下鼠标,就可以轻松地将新事件添加到日历中,而无需使用键盘
我脑海中的日历显示更像FullCalendar。FullCalendar的问题是我找不到阻止日期的解决方案。
是的,您可以使用FullCalendar。
启动日历时,将一个函数(例如function)传递给参数选择:
$('#yourdiv').fullCalendar(
{...
select: yourFunction,
...
}, fcOtherSettings
);
当用户尝试创建新事件时,yourFunction
将始终被触发。然后,在yourFunction
中,您可以验证您想要的任何内容,例如,阻止用户创建特定日期的事件。
此外,您可以覆盖这些日期的css(例如,放置灰色、块光标),以帮助用户获得不允许日期的第一手印象。
举个例子,今天之前的所有日子都是灰色背景:
$('.fc-today').prevAll('td').css('background','gray');
$('.fc-today').parent().prevAll().find('td').css('background','gray');
你需要使用"beforeShowDay"选项,然后在那里运行你的锁定逻辑,我这样使用它只允许周一可选:
$('input[id$=txtCompareTo], input[id$=txtWeekOf]').datepicker({
firstDay: 0,
beforeShowDay: function (date) {
return [date.getDay() == 0, "", ""];
}
});
但是,很明显,您可以在函数中放入所需的任何逻辑,使其根据需要启用或禁用天数。