jquery - jQueryUI Datepicker,只允许范围内的日期
问题描述
我需要实现一个 jQueryUI 日历,它只允许用户从特定范围内选择日期。日期范围以日期数组数组的形式出现:(
[["2019-10-10", "2019-11-14"],["2019-09-10", "2019-09-27"]]
范围从不重叠)
我已经编写了这段代码,但它只显示其中一个数组的日期,并使所有其他数组无法选择。
$(document).ready(function() {
var allowed_dates = component.get('v.dates');
$( "#datepickerId" ).datepicker({
showButtonPanel: true,
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd',
beforeShowDay: function(date) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
for (var i = 0; i < allowed_dates.length; i++) {
var from = new Date(allowed_dates[i][0]);
var to = new Date(allowed_dates[i][1]);
var current = new Date(string);
if (current >= from && current <= to) {
return [true, ""];
} else {
return [false, ""];
}
}
}
});
});
我认为当 for 循环为第二个数组运行时,可选日期会被覆盖
解决方案
我对您的代码进行了以下更改,以实现您的要求。
beforeShowDay: function (date) {
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
for (var i = 0; i < allowed_dates.length; i++) {
var from = new Date(allowed_dates[i][0]);
var to = new Date(allowed_dates[i][1]);
var current = new Date(string);
if (current >= from && current <= to) {
return [true, ""];
}
}
return [false, ""];
}
推荐阅读
- kubernetes - 如何为从源 Pod 到目标 Pod 的每个请求添加标头?
- python - 在变革问题中传递大论据
- sql - PostgreSQL 中 jsonb 的性能
- python - 如何使用硒向网页添加重复响应?
- javascript - 使用 Google Apps 脚本 (WooCommerce Webhook) 获取 JSON 数组中的对象值
- adobe - AEM-当页面创建时指示灯显示为已发布但未发布
- c# - 如何在我要测试的方法中模拟 Process.GetProcessesByName() 调用?
- python - 不要在已编译的 exe 上工作关键侦听器
- codeigniter - getting error Call to a member function result() on boolean when i try to use group_by function in codeigniter
- javascript - JavaScript Date toISOString 在 1978 年 4 月 3 日之前返回意外结果