【发布时间】:2012-06-12 05:14:03
【问题描述】:
我正在使用这个multidate picker。是否可以使用不选择周末的日期范围模式?
我已经完成了多日期选择器,其中周末被阻止,用户只能选择 5 天,但这不是我的目标。我想要这个功能:当用户点击特定日期时,将突出显示范围内的五天而没有周末...
我的代码如下:
jQuery('#deliverydate').multiDatesPicker({
minDate:0,
beforeShowDay: noWeekendsOrHolidays,
mode: 'daysRangeWithoutWeekends',
autoselectRange: [0,5],
numberOfMonths: 2
});
现在我已经很接近自己的解决方案了:
如果日期范围内有周末,我计算所有必须启用的天数和所有必须选择的新天数。
我在 multidatepicker.js daysRangeWithoutWeekends 中添加了我的新方法,我计算了所有新的和禁用的天数。然后我使用两个 foreach 循环来禁用和启用新日期:
$.each(all_removed_dates, function(index, value) {
methods.removeDates.call(obj, value);
});
$.each(all_new_dates, function(index, value) {
methods.addDates.call(obj,value);
});
值是日期对象。第一个 foreach 循环完美运行并删除了所有突出显示的周末,但第二个循环不起作用。它返回我错误:
Empty array of dates received.
你知道为什么吗?
对于所有你不明白我的目标是什么:
如果我点击 21.6.2012 日期 21.6.、22.6、25.6、26.6.、27.6,我必须在没有周末的范围内选择 5 天。必须选择。
使用上面的代码,我设法在周末删除突出显示的课程,但不知道为什么第二个循环(看我的代码上面)没有突出显示 26.6.2012 和 27.6.2012。
【问题讨论】:
-
你在哪里输入那五天??>..你有开始日期和结束日期之类的东西吗??
-
你的意思是自动计算结束日期,开始日期和5天不包括周末??
-
你能多写一些代码,展示你如何填充all_new_dates
-
@gašper 最好用您的代码更新您的问题,而不是添加答案。在您的代码中,您在哪里声明/分配
all_removed_dates和all_new_dates?
标签: jquery jquery-ui date range jquery-ui-datepicker