【问题标题】:Open next month if selectable date falls in the next month如果可选择的日期在下个月,则在下个月打开
【发布时间】:2012-04-13 02:30:33
【问题描述】:

我有 jQuery 日历。我必须做到这一点,以便根据其他变量只能选择星期一或星期二等。现在,如果今天是 2012 年 4 月 27 日并且可选择的日期是星期四,并且将mindate 设置为 2012 年 4 月 27 日或当前日期,那么即使那里没有可选择的日期,默认月份仍然是 4 月。

我怎样才能使它在这种情况下默认月份是其中有可选日期的月份。

我希望这个图会有所帮助!

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您可以使用自定义函数来设置defaultDate/minDate。在这里,我有一个定义一周中有效日期的数组。如果当前日期不是一个,它会向前移动直到找到一个。你可以为你的特定用途定制这样的东西:

    var validDays = [0, 1, 1, 0, 0, 1, 0];
    
    function firstDate() {
        var valDate = new Date();
        valDate.setDate(valDate.getDate() + 14);
        var day = valDate.getDay();
        var i = 0;
        while (validDays[day] != 1 && i < 7) {
            valDate.setDate(valDate.getDate() + 1);
            day = valDate.getDay();
            i++;
        }
        return valDate;
    }
    
    function validDate(date) {
        if (validDays[date.getDay()] == 1) {
            return [true, ""];
        } else {
            return [false, ""]
        }
    }
    
    $(function() {
        $("#datepicker").datepicker({
            beforeShowDay: validDate,
            minDate: firstDate(),
            defaultDate: firstDate()
        });
    });
    

    演示:http://jsfiddle.net/jtbowden/LgLr9/1/

    【讨论】:

    • 感谢它有效,但我已经将最短日期设置为 +14 天。在这种情况下,我必须改变什么才能让它工作
    • 需要在firstDate()的第一行后面加上valDate.setDate(valDate.getDate() + 14);。以上编辑。
    • 没问题!很高兴我能帮上忙。
    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多