如果本月没有可用日期,如何在下个月开启jquery datepicker?

时间:2012-03-30 17:12:54

标签: jquery datepicker

我正在使用带有beforeShowDay过滤器的jquery datepicker,它只启用星期二。如果我接近月底并且没有更多星期二,那么选择器将打开当月,没有可用的日期。

如何通过选择器识别这种情况?有没有办法要求所选月份的可用日期或类似的东西?

如果我确实认识到这种情况,如何在用户点击的下个月打开选择器?

有自动方法吗?

3 个答案:

答案 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 });