jQuery UI日期选择器-今天禁用';如果今天是星期一,那是什么日子?
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
$(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日等,因为它们与今天在同一天。此外,您不能只启用星期一(akadate.getDay()==1
)