You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery UI datepicker中禁用所有周日及指定日期?

解决jQuery UI Datepicker同时禁用周日和指定日期的问题

你的代码存在两个关键问题,导致无法同时生效:

1. 禁用日期数组定义错误

数组开头的多余逗号会生成一个undefined元素,干扰indexOf的判断逻辑,需删除开头逗号:

var array = ['2024-01-07', '2024-01-08', '2024-01-09', '2024-01-10']

2. beforeShowDay返回值逻辑错误

beforeShowDay返回的数组中,第一个元素才是控制日期是否启用的布尔值,第二个元素是可选的CSS类名。你之前把两个禁用条件拆到数组的两个元素里,导致只有周日的禁用逻辑生效。

正确逻辑是:日期需同时满足「不是周日」并且「不在禁用日期数组中」才允许选择,要把两个条件合并到返回数组的第一个元素中:

$("#datepicker").datepicker({
  beforeShowDay: function(date) {
    var day = date.getDay(); // 0代表周日,1-6代表周一到周六
    var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
    // 两个条件都满足才返回true(允许选择),否则返回false(禁用)
    return [(day !== 0 && array.indexOf(string) === -1), ''];
  }
});

修改后,所有周日和数组中指定的日期都会被禁用,其余日期正常可选。

内容的提问来源于stack exchange,提问作者user22409362

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:42:03