【问题标题】:Disable holiday, sundays and past dates inside jQuery UI datepicker在 jQuery UI datepicker 中禁用假日、星期日和过去的日期
【发布时间】:2013-05-29 09:53:51
【问题描述】:

我正在使用 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我不是很了解

【问题讨论】:

    标签: javascript php jquery jquery-ui jquery-ui-datepicker


    【解决方案1】:

    试试这个:- html代码: &lt;input id="txtDate" /&gt;

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

    【讨论】:

    • 那是不是只适用于周日的残疾人,但是公共假期和上一个日期呢?
    • 因为我必须指定公共假期的具体日期,以便让代码知道必须禁用哪个日期。
    • 我已经编辑了我的代码,其中数组 removeDays 包含要禁用的天数列表。
    • 非常感谢大家,我已经成功实现了
    • err 我想让日历看起来更有吸引力,比如我想命名的禁用日列表或某种符号,比如新年的公共假期等,有人可以教我怎么做
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      $("#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, ""];
              }
          });
      });
      

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

      【讨论】:

      • 谢谢大家,我会试着把它放在我的代码中,当我成功完成时会通知你们
      【解决方案4】:

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

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

      【讨论】:

      • 我去过但还是不能合并功能
      猜你喜欢
      • 2012-05-20
      • 2020-10-08
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多