javascript - 移动日期但跳过 datepicker jquery 中禁用的日期?

标签 javascript jquery date

我想跳过日期选择器中禁用的日期,

<div id="picker"></div>

<br/><br/>

<button class="next-day">Next</button>
<button class="prev-day">Previous</button>

这是我关于禁用日期的代码:

var disabledDates = ["2020-03-28","2020-03-27","2020-03-26"]
 $('#picker').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [ disabledDates.indexOf(string) == -1 ]
    }
});

我的日期选择器代码

$('#picker').datepicker();

$('.next-day').on("click", function () {
    var date = $('#picker').datepicker('getDate');
    date.setTime(date.getTime() + (1000*60*60*24))
    $('#picker').datepicker("setDate", date);
});

$('.prev-day').on("click", function () {
    var date = $('#picker').datepicker('getDate');
    date.setTime(date.getTime() - (1000*60*60*24))
    $('#picker').datepicker("setDate", date);
});

这是我的 fiddle http://jsfiddle.net/3zoat0u6/1/

最佳答案

您可以在下一个/上一个事件处理程序中检查禁用日期,并继续添加/减去一天,直到超过禁用日期。例如:

$('.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);
});

Updated JSfiddle

关于javascript - 移动日期但跳过 datepicker jquery 中禁用的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60680713/

相关文章:

javascript - Itext 或 Adob​​e Acrobat 上的行间距

javascript - Google map 添加新标记时为什么会重绘整个页面

javascript - 在循环中选择动态元素 id

python - 如何在 Django 日期范围过滤器中放置占位符

javascript - 单击向数组添加/删除项目时出现奇怪的问题

javascript - 错误或成功提交表单时的警报消息

jquery 验证 onchange

javascript - 如何从明天的nodejs获取unix时间戳

string - 将 NSDate 转换为 NSString 时设置了错误的年份

javascript - 在 JavaScript 中查找 JSON