2

我正在使用 jQuery datepicker 创建约会表单。我四处搜索,但似乎无法在演出前结合我想要的所有功能。我想要的日期选择器在今天之前的所有日期都被禁用(昨天和其余日期,因为你不能在今天之前的日期预约它必须更晚),然后在每个星期天(非工作日)和公众假期禁用(这个使用数组)。我从其他人那里看到的是 jQuery 专门用于公共假期之类的一个功能,它只是一个数组,但是前一天和周日禁用怎么样?

我试图关注这篇文章http://articles.tutorboy.com/2010/09/03/jquery-ui-datepicker-disable-specified-dates/但我不知道如何结合它。有人可以告诉我怎么做吗?

我每个星期天都要禁用这个

 function disabledSunday(date) {
     var day = date.getDay();
     return [(day != 0), ''];
 }
 $('#datepicker').datepicker({
     dateFormat: 'mm-dd-yy',
     beforeShowDay: disabledSunday
 });

直到今天为止

 var date = new Date();
 var m = date.getMonth(),
     d = date.getDate(),
     y = date.getFullYear();
 // Disable all dates till today
 $('#datepicker').datepicker({
     minDate: new Date(y, m, d),
     dateFormat: 'mm-dd-yy',
 });

这个是针对特定日期的,例如公共假期

 // Disable a list of dates
 var disabledDays = ["5-31-2013", "6-01-2013"];

 function disableAllTheseDays(date) {
     var m = date.getMonth(),
         d = date.getDate(),
         y = date.getFullYear();
     for (i = 0; i < disabledDays.length; i++) {
         if ($.inArray((m + 1) + '-' + d + '-' + y, disabledDays) != -1) {
             return [false];
         }
     }
     return [true];
 }
 $('#datepicker').datepicker({
     dateFormat: 'mm-dd-yy',
     beforeShowDay: disableAllTheseDays
 });

如何将这三个功能合二为一,我对 Jquery 和 javascript 不太了解

4

4 回答 4

3

试试这个:- html 代码: <input id="txtDate" />

function disabledays(date) {
    var ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
        //if u have to disable a list of day
         var removeDays = ["2013-6-11","2013-6-31" ];
         if ($.inArray(ymd, removeDays) >= 0) {
        return [false];
    } else {
        //Show accept sundays
        var day = date.getDay();
        return [(day == 1 || day == 2 || day == 3 || day == 4 ||day == 5 ||day == 6 )];
    }
}

$(function () {
    $('#txtDate').datepicker({
        beforeShowDay: disabledays
    });
});
于 2013-05-29T10:03:32.900 回答
1

尝试这个
$("#datepicker").datepicker({ minDate: 0 });

于 2013-06-03T16:50:21.917 回答
1

您可以使用minDate选项禁用过去的日期。此外,您可以使用beforeShowDayoption 来检查其他两个条件**。

$("#datepicker").datepicker({
        minDate: 0,
        beforeShowDay: function (date) {
            // it is possible to write the following function using one line
            // of code; instead, multiple if/else are used for readability
            var ok = true;
            if (date.getDay() === 0) { // is sunday
                ok = false;
            } else {
                var dateStr = $.datepicker.formatDate("m-dd-yy", date);
                if ($.inArray(dateStr, disabledDays) >= 0) { // is holiday
                    ok = false;
                }
            }
            return [ok, ""];
        }
    });
});

** 实际上,可以检查该函数中的所有三个条件。

于 2013-05-29T10:51:10.740 回答
0

愿你在这里找到你的解决方案

http://jqueryui.com/datepicker/#min-max

于 2013-05-29T10:09:14.580 回答