Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery UI日期选择器-今天禁用';如果今天是星期一,那是什么日子?_Jquery_Jquery Ui_Datepicker - Fatal编程技术网

jQuery UI日期选择器-今天禁用';如果今天是星期一,那是什么日子?

jQuery UI日期选择器-今天禁用';如果今天是星期一,那是什么日子?,jquery,jquery-ui,datepicker,Jquery,Jquery Ui,Datepicker,jQuery UI日期选择器: 嗨 我正在尝试让弹出式日历只允许选择未来的星期一日期。我尝试过以下代码: $(function() { $('#dateWeekly').datepicker({ showOn: 'both', // use to enable calendar button and focus buttonImage: 'childtime/images/calendar.gif', buttonImageOnly: t

jQuery UI日期选择器:

我正在尝试让弹出式日历只允许选择未来的星期一日期。我尝试过以下代码:

$(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(), ""]; }
    });
});
这将禁用所有过去的日期,并禁用除星期一之外的所有未来日期(目前为止效果良好),但如果今天是星期一,则无法禁用今天的日期。如有任何建议,将不胜感激。谢谢

也许这会有帮助

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

minDate
设置为
+1d

因为你应该只选择未来的星期一,所以无论是哪一天,今天都不应该被选择

您还可以将您的展前活动简化为:

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

下面的代码可能是这个问题的解决方案

    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];

    }

默认情况下,它显示今天的日期。您不需要将其配置为显示当前日期对不起,这是错误的。您必须比较
date.getDay()==1
而不是
今天
,并返回当月的日期,而不是“日期值”,因此此比较也不起作用。你必须做一个
|
而不是
&&
日期。getDay()输出一周中的第几天,1是星期一,所以你可能没有完全阅读我写的代码。好吧,在再次查看后,我看到了逻辑,但它仍然是错误的。你的逻辑是,如果今天是星期一,而我们正在检查的日期是今天,请禁用它。但这不是你的代码所做的
today.getDay()==1
是正确的,但另一个条件是错误的。你只是比较一个月的哪一天,而不是哪一个月或哪一年。因此,如果今天是2010年7月12日(星期一),它将禁用8月12日、9月12日等,因为它们与今天在同一天。此外,您不能只启用星期一(aka
date.getDay()==1