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

如何在datepicker中同时禁用自定义指定日期与过往历史日期

Datepicker 禁用过往日期+自定义指定日期实现方案

你只需要在原有beforeShowDay回调中补充过往日期的判断逻辑即可,修改要点如下:

  • 先生成今日的零点日期对象,避免时间部分导致的当日日期误判
  • 优先判断待渲染日期是否早于今日,早于则直接返回false禁用
  • 保留原有自定义禁用日期的判断逻辑
  • 注意原有自定义禁用日期数组中不要存在多余空格,避免日期匹配失效

修改后的完整代码如下:

<div class='input-group date' id='datepicker1'>
    <asp:TextBox runat="server" ID="txtdatepicker"> 
    </asp:TextBox>
</div>

<script type="text/javascript">
$(function () {
    // 注意修正数组中日期的多余空格,避免匹配失败
    var disableSpecificDates =  ["19-8-2021", "28-8-2021", "26-8-2021"];
    // 生成今日零点日期,消除时间部分影响
    var today = new Date();
    today.setHours(0,0,0,0);

    $('#datepicker1').datepicker({
        format: 'mm/dd/yyyy',
        beforeShowDay: function (date) {
            // 先判断是否为过往日期,是则直接禁用
            if(date < today){
                return false;
            }
            // 再判断是否为自定义禁用日期
            var dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
            return disableSpecificDates.indexOf(dmy) === -1;
        }
    });
    $('#datepicker1').datepicker("setDate", new Date());
});
</script>

如果使用的是Bootstrap Datepicker,返回值可调整为[false]格式适配组件规范,大部分jQuery系的datepicker组件上述逻辑都可直接生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:36:00