我正试图从我的日期选择器中排除周末,一系列日期和每周的星期一。这就是我到目前为止所做的:
var disableddates = ["12-21-2015", "12-24-2015", "1-4-2016", "1-5-2016"];
function DisableSpecificDates(date) {
var m = date.getMonth();
var d = date.getDate();
var y = date.getFullYear();
var currentdate = (m + 1) + '-' + d + '-' + y ;
for (var i = 0; i < disableddates.length; i++) {
if ($.inArray(currentdate, disableddates) != -1 ) {
return [false];
}
}
var weekend = $.datepicker.noWeekends(date);
return [(weekend[0] || date.getDay() == 1)]; // I'm trying to disable Monday here
}
$(function() {
$("#date").datepicker( {
minDate: setMinDate,
maxDate: "+2M",
beforeShowDay: DisableSpecificDates
});
});
特定日期(存储在disableddates
数组中)不包括在内,周末也是如此,但周一仍然可以选择 - 是否有人知道我哪里出错了,或者替代解决方案?< / p>
答案 0 :(得分:2)
所以,如果我理解得对,你想要周二至周五的约会。检查$.datepicker.noWeekends(date);
做了什么,如果是工作日则返回1,如果是周末,则返回0。那么让我们检查你的代码:
weekend[0] || date.getDay() == 1
如果weekend[0]
为false,则表示date.getDay() == 0
或== 6
(星期日或星期六)。但weekend[0]
始终适用date.getDay() == 1
。所以你总是允许星期一,true || true == true
你想要的是:
return [(weekend[0] && date.getDay() != 1)];
这意味着,如果它与星期一不同,则允许它
答案 1 :(得分:1)
我找到了:
0: Sunday
1: Monday
2: Tuesday
3: Wednesday
4: Thursday
5: Friday
6: Saturday
所以那部分是正确的。我也发现你没有在date
DisableSpecificDates
我试过(简化):
$("#datepicker").datepicker({
beforeShowDay: function(date) {
var day = date.getDay();
return [(day != 1 && day != 0 && day != 6)];
}
});
<link href="https://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>
<p>Date:
<input type="text" id="datepicker">
</p>