如何在Jquery datepicker中禁用过去的周末?

时间:2014-01-30 23:11:29

标签: jquery calendar datepicker

我有一个日历,只显示周末选择... 但我想禁用过去的周末...... 示例:现在是第30天,但是日历显示在今天日期之前的周末...

Example here

如何增加节日?

这是代码:

jQuery(document).bind('gform_post_render', function(){
        jQuery(".datepicker").datepicker('destroy').datepicker({
            showOn: "both",
            buttonImage: "/wp-content/plugins/gravityforms/images/calendar.png",
            buttonImageOnly: true,
            dateFormat: "mm/dd/yy",
            firstDay: 1,
            currentText: 'Hoy',
            monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
            monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun',
'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
            dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
            dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié;', 'Juv', 'Vie', 'Sáb'],
            dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: '',
            beforeShowDay: function(date) {
                var day = date.getDay();
                return [(day == 0 || day == 6)];
            }
        });
    });

提前非常感谢!!

1 个答案:

答案 0 :(得分:0)

对于节日的禁用日期,我认为你必须添加一个包含这些日期的数组,也许你可以从数据库中取出它们或硬编码它们,这是一个例子:

var festiveDays = ["15-2-2014","23-2-2014","2-3-2014"];

至于仅显示“今天”之后的日期,只需将minDate: 0添加到datepicker即可。现在,如果你想将它们两者结合起来,这就是最终的结果:

// Festive days dates (lets use these three days as example)
var festiveDays = ["15-2-2014","23-2-2014","2-3-2014"];

// Initialize datepicker
$("#datepicker").datepicker({
    firstDay: 1,
    minDate: 0,
    beforeShowDay: function(dt) {
        var dates = dt.getDate() + "-" + (dt.getMonth()+1) + "-" + dt.getFullYear();
        if ($.inArray(dates, festiveDays) < 0) {
            return [dt.getDay() == 0 || dt.getDay() == 6, ""];
        } else {
            return [false,"",""];
        }
    }
});

以下是fiddle,因此您可以对其进行测试。

Final result