jQuery UI Datepicker - 如果今天是星期一,则禁用今天的日期?

时间:2010-07-14 15:18:42

标签: jquery jquery-ui datepicker

jQuery UI Datepicker:

嗨,

我正在尝试让弹出日历仅允许选择将来的星期一日期。我试过这段代码:

$(function() {
    $('#dateWeekly').datepicker({
        showOn: 'both', // use to enable calendar button and focus 
        buttonImage: 'childtime/images/calendar.gif',
        buttonImageOnly: true,
        buttonText: 'Show Calendar',
        numberOfMonths: 3,
        showButtonPanel: true,
        minDate: -0, maxDate: '+12M',
        // beforeShowDay: function(date){ return [date.getDay() == 1,""]}
        beforeShowDay: function(date) { return [date.getDay() == 1, "" && date.getTime() != today.getTime(), ""]; }
    });
});

这会禁用所有过去的日期,并禁用除星期一以外的所有未来日期(到目前为止一直很好),但如果今天是星期一,则无法禁用今天的日期。任何建议将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:0)

minDate设为+1d

因为你应该只选择未来星期一,今天不应该被选中,无论它是哪一天。

您可以将beforeShowDay简化为:

beforeShowDay: function(date) {
        return [date.getDay() == 1, ""];
}

答案 1 :(得分:0)

以下代码可能是此问题的解决方案。

    beforeShowDay: function(date) { 
          returnFlag = true;    
              currentDate = new Date();
          if( date.getDay() == 1 && date.getDate() == currentDate.getDate()  
                                 && date.getMonth() == currentDate.getMonth()){
                returnFlag = false;
          }
          return [returnFlag,'',false];

    }

答案 2 :(得分:-1)

也许这可以帮助

$(function() {
  $('#dateWeekly').datepicker({
    showOn: 'both', // use to enable calendar button and focus 
    buttonImage: 'childtime/images/calendar.gif',
    buttonImageOnly: true,
    buttonText: 'Show Calendar',
    numberOfMonths: 3,
    showButtonPanel: true,
    minDate: -0, maxDate: '+12M',
    beforeShowDay: function(date) { 
      // from here
      var selectable = true;
      var today = new Date()
      if( today.getDay() == 1 && date.getDate() == today.getDate() )selectable = false;
      return [selectable,'',false];
      // til here
    }
  });
});