我已经做了一些搜索,似乎找不到我正在寻找的具体例子(JS不是我的强项)。如果已经提供了另一个答案,我会道歉,并会永远感激这个链接。
我目前正在使用PHP构建一个付费计算器,并在我的首页上使用datepicker来确保一致性。我们每两周都会得到一份报酬,而且我想只提供那些每两周一次的选择日期。我星期六的所有日子都禁用了,但它允许所有星期六。我想可能有一个for循环或者我可以用来计算从指定日期起每隔一个星期六的东西,以确保显示正确的日期,但正如我上面所说,我不熟悉JS。 (我想从指定的日期开始计算,以便自动更新,我不必对两周的日期进行硬编码。)
我的代码如下:
$(function() {
$( "#datepicker" ).datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
dateFormat: "dd-mm-yy",
beforeShowDay: nonWorkingDates,
});
function nonWorkingDates(date){
var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6;
var closedDays = [[Sunday], [Monday], [Tuesday], [Wednesday], [Thursday], [Friday],];
for (var i = 0; i < closedDays.length; i++) {
if (day == closedDays[i][0]) {
return [false];
}
}
return [true];
}
});
但是多亏巴德里,我把它缩小到了:
$(function() {
$( "#datepicker" ).datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
dateFormat: "dd-mm-yy",
beforeShowDay: nonWorkingDates
});
function nonWorkingDates(date){
if (date.getDay() != 6) {
return [false, '', 'selected'];
}
return [true, ''];
}
});
作为相关事项(如果需要,我很乐意提出单独的问题),我可以让datepicker显示您可以选择的日期吗?或者是否有人可以建议实现这一目标的替代方案?
干杯
答案 0 :(得分:0)
使用选项:
minDate: 0,
maxDate: '+14'
将datepicker限制为下一个两周。
答案 1 :(得分:0)
请参阅此常见问题解答,其中显示了如何允许用户仅选择一周中的特定日期: http://jqfaq.com/how-to-restrict-date-selection-to-specifc-week-days-in-the-dropdown/
要仅允许今天的其他星期六,您的代码看起来会略有不同:
function beforeShowDayHandler(date) {
var today = new Date();
if (date < today || date.getDay() != 6) {
return [false, '', 'selected'];
} else {
var day = today.getDay();
var comingSat = new Date();
comingSat.setDate(comingSat.getDate() + 6 - day);
var diffDays = dateDiffInDays(comingSat, date);
var noOfWeeksAway = diffDays / 7;
if ((noOfWeeksAway % 2 == false)) return [false, '', 'selected'];
}
return [true, ''];
}