我正在使用带有beforeShowDay
过滤器的jquery datepicker,它只启用星期二。如果我接近月底并且没有更多星期二,那么选择器将打开当月,没有可用的日期。
如何通过选择器识别这种情况?有没有办法要求所选月份的可用日期或类似的东西?
如果我确实认识到这种情况,如何在用户点击的下个月打开选择器?
有自动方法吗?
答案 0 :(得分:3)
试试这个jsfiddle我做了。
$(document).ready( function() {
$('#datepicker').datepicker({
defaultDate: nextTuesday(),
beforeShowDay: enableTuesdays
});
});
function enableTuesdays(date) {
// 0 =s unday, 1 = monday, 2 = tuesday, 3 = wednesday,
// 4 = thursday, 5 = friday, 6 = saturday
var day = date.getDay();
return [(day == 2), ''];
}
function nextTuesday() {
var today = new Date();
var offset = (today.getDay() < 2) ? 0 : 7;
var daysUntilTuesday = 2 + offset - today.getDay();
return '+'+daysUntilTuesday;
}
答案 1 :(得分:0)
使用datepicker setDate()
方法 - http://jqueryui.com/demos/datepicker/#method-setDate - 将日历日期设置为beforeShowDay
事件中的下一个可用星期二。
有一个示例可以在这里获取下周的特定日期:Get date of specific day of the week in JavaScript
答案 2 :(得分:0)
虽然这没有解决如果没有更多可用日期,弄清楚日历在下个月开放的逻辑。如果前端设计允许它,你可以打开一个2个月视图的日期选择器,这样你总是可以选择日期吗?
安装程序要求您在初始化datepicker时传入'numberOfMonths'作为选项。
$('#datepicker').datepicker({ numberOfMonths: 2 });