jquery datepicker beforeshowday将我标记为红色预订日,但仅限于当月
虽然我得到了所有预订日期的正确json响应,但控制器中有相应的代码,用于计算开始日期和结束日期之间的日期,如下所示:jquery datepicker beforeshowday将我标记为红色预订日,但仅限于当月,jquery,datepicker,Jquery,Datepicker,虽然我得到了所有预订日期的正确json响应,但控制器中有相应的代码,用于计算开始日期和结束日期之间的日期,如下所示: ["30 September 2015","1 October 2015","2 October 2015","3 October 2015"] 只有当月9月的日期被标记为红色。10月的日期,虽然已预订,但不能用红色标记。有两个类似的代码片段,一个是在页面加载时通过ajax获取预定的日期,另一个是响应按钮以添加预定的日期 在这里的代码中,myDate应该是发送到beforesh
["30 September 2015","1 October 2015","2 October 2015","3 October 2015"]
只有当月9月的日期被标记为红色。10月的日期,虽然已预订,但不能用红色标记。有两个类似的代码片段,一个是在页面加载时通过ajax获取预定的日期,另一个是响应按钮以添加预定的日期
在这里的代码中,myDate应该是发送到beforeshowday函数的日期选择器的运行日期,但它似乎只发送9月份的日期,所以剩余的日期不能与我的坏日期进行比较,即在数据中返回的预定日期
是的,beforeshowday上的文档说明:
在显示该函数之前,每天都会在datepicker中调用该函数。
因此,该函数将仅在要显示的天数内调用
事实上,我可以想象jquery可以自动查看显示的月份,然后发送该月份的所有天数,以与预订日期的json数组进行比较。既然如此,为什么不在我打开那个日历月的时候发送十月呢
代码中有一些多余的代码片段,因为bookedperiods是一个没有该方法的控制器的路由,因为我注意到它是不必要的
这可以在这里看到:
问题是数组中的日期格式,因为您对$checkdate使用了dd-MM-yy,所以它的日期值将以0作为前缀,与数组不匹配
$checkdate = $.datepicker.formatDate('dd MM yy', mydate);
您还可以简化checkdate实现,如下所示
jQueryfunction${
var$myBadDates=[2015年9月30日、2015年10月1日、2015年10月2日、2015年10月3日];
$start\u date,end\u date.datepicker{
日期格式:“dd-MM-yy”,
月数:2,
展示日前:检查日期
};
函数checkBadDatesmydate{
var$return=true,
$returnclass=可用,
$checkdate=$.datepicker.formatDate'd MM yy',mydate;
如果$myBadDates.indexOf$checkdate>-1{
$return=false;
$returnclass=不可用;
}
return[$return,$returnclass];
}
};
非常感谢你!阿伦
$checkdate = $.datepicker.formatDate('dd MM yy', mydate);