javascript - 日期选择器跳过禁用的一天 Javascript
问题描述
我想跳过禁用日期。
工作:代码可以跳过来自数组的日期:
var disabledDates = ["2020-08-07","2020-08-06"] <br />
不工作:代码不会跳过禁用的日子:
var day = day.getDay();
var monday = 1;
工作jsfiddle:http: //jsfiddle.net/9Lfjdh54/4/
var disabledDates = ["2020-08-07", "2020-08-06"]
$("#picker").datepicker({
beforeShowDay: function(day) {
const string = jQuery.datepicker.formatDate('yy-mm-dd', day);
var day = day.getDay();
var monday = 1;
if (day != monday) {
return [true] && [disabledDates.indexOf(string) == -1]
} else {
return [false]
}
}
});
$('.next-day').on("click", function() {
var date = $('#picker').datepicker('getDate');
do {
date.setTime(date.getTime() + (1000 * 60 * 60 * 24));
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
}
while (disabledDates.indexOf(string) >= 0);
$('#picker').datepicker("setDate", date);
});
$('#picker').datepicker();
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
<div id="picker"></div>
<br/><br/>
<button class="next-day">Next</button>
解决方案
不跳过星期一以下的日子
更具体地说,单击第二天按钮时不会跳过这些。
由于下一个按钮不使用日期选择器来确定哪些日期可用,因此用于禁用日期的相同逻辑需要在下一个按钮中重复使用。
简单来说,这意味着添加星期一检查:
var day = date.getDay();
var monday = 1;
}
while (disabledDates.indexOf(string) >= 0 || day==monday);
更新小提琴:http: //jsfiddle.net/xjq63mv2/
var disabledDates = ["2020-08-07", "2020-08-06"]
$("#picker").datepicker({
beforeShowDay: function(day) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', day);
var day = day.getDay();
var monday = 1;
if (day != monday) {
return [true] && [disabledDates.indexOf(string) == -1]
} else {
return [false]
}
}
});
$('.next-day').on("click", function() {
var date = $('#picker').datepicker('getDate');
do {
date.setTime(date.getTime() + (1000 * 60 * 60 * 24));
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
var day = date.getDay();
var monday = 1;
}
while (disabledDates.indexOf(string) >= 0 || day == monday);
$('#picker').datepicker("setDate", date);
});
$('#picker').datepicker();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
<div id="picker"></div>
<br/><br/>
<button class="next-day">Next</button>
<button class="prev-day">Previous</button>
推荐阅读
- android - Firebase.Xamarin 与 monoandroid81 不兼容
- c# - 使用 JQUERY 进行 HTML 字符串到纯文本的比较
- regex - 如果它出现在匹配之前,如何忽略基于单词的匹配
- java - 如何在 Java 中编写预测标记的单个神经元
- javascript - 按键合并多个数组
- python - hash() 如何计算元组的哈希?
- c# - 如何为多个目标框架构建解决方案?
- java - NodeList 的 java.lang.NullPointerException
- objective-c - 如何使用objective c将upi和tez支付集成到bookmyshow和flipkart等应用程序中?
- ms-access - MS Access 中许多 1:M 场景的问题