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

如何避免Keith Wood datepick日历插件点击日期后自动切换月份

Keith Wood datepick双月显示点击右侧月份自动滚动解决方法

该交互为插件默认行为:多月份显示时,插件默认会将选中日期所在的月份调整为显示组的第一个月份,导致整体月份滚动。

方案1:修改初始化配置(优先使用)

直接在初始化参数中添加adjustRange: false即可关闭自动调整逻辑,完整配置参考:

$('#datepickElem').datepick({
  monthsToShow: 2, // 你原有保留的双月显示配置
  adjustRange: false, // 核心配置:禁止自动调整月份显示范围
  // 其他原有配置保持不变
});

如果使用的是低版本插件,上面配置不生效的话,增加changeMonth限制:

$('#datepickElem').datepick({
  monthsToShow: 2,
  changeMonth: false, // 禁止默认的月份切换行为
  onSelect: function(dates) {
    // 自行处理日期选中后的业务逻辑,比如赋值给输入框
    $(this).val($.datepick.formatDate('yyyy-mm-dd', dates[0]));
  }
});

方案2:强制锁定显示起始月份(兜底方案)

如果配置修改无效,可以通过回调强制固定显示的月份范围,避免跳转:

// 初始化时记录需要固定的起始显示月份,这里默认当月,可自行修改
const fixedStartMonth = new Date();
fixedStartMonth.setDate(1);

$('#datepickElem').datepick({
  monthsToShow: 2,
  onShow: function() {
    // 每次弹出时强制设置显示的起始月
    $(this).datepick('setDate', fixedStartMonth, { changeMonth: true });
  },
  onSelect: function(dates) {
    // 选中日期后重置显示起始月,防止跳转
    setTimeout(() => {
      $(this).datepick('setDate', fixedStartMonth, { changeMonth: true });
    }, 10);
    // 此处添加你自己的选中后业务逻辑
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:04