【问题标题】:How do I make the jquery datepicker open with the next month when there are no days available this month?当本月没有可用日期时,如何使 jquery datepicker 在下个月打开?
【发布时间】:2012-03-30 17:12:54
【问题描述】:

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

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

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

有自动的方法吗?

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    试试这个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;
    }
    

    【讨论】:

      【解决方案2】:

      使用日期选择器 setDate() 方法 - http://jqueryui.com/demos/datepicker/#method-setDate - 将日历日期设置为 beforeShowDay 事件中的下一个可用星期二。

      这里有一个获取一周中下一个特定日期的示例:Get date of specific day of the week in JavaScript

      【讨论】:

      • 我不想为用户设置日期,我只想为他们提前移动日历。
      【解决方案3】:

      虽然这并没有解决如果没有更多可用日期,则找出让日历在下个月打开的逻辑。如果前端设计允许,您可以让日期选择器以 2 个月的视图打开,这样您总是可以选择日期吗?

      安装程序会要求您在初始化日期选择器时将“numberOfMonths”作为选项传入。

      $('#datepicker').datepicker({ numberOfMonths: 2 });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多