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

Chrome浏览器中bootstrapMaterialDatePicker自动弹出问题求助

解决Chrome中bootstrapMaterialDatePicker页面加载自动弹窗的问题

我来帮你搞定这个Chrome专属的小bug——原本得点击才会弹出的日期选择器,现在页面一加载就自动冒出来,其他浏览器却好好的。这大概率是Chrome近期的更新或者它特有的自动聚焦行为搞的鬼,下面给你几个实用的解决方案:

方案1:延迟初始化选择器

Chrome的DOM加载速度可能比其他浏览器快一截,导致插件初始化时输入框的状态还不稳定,误触发了弹窗。给初始化加个短暂延迟就能避开这个问题:

$(document).ready(function() {
  // 延迟100毫秒初始化,给页面元素留足稳定时间
  setTimeout(function() {
    $('.js-calendar-future').bootstrapMaterialDatePicker({
      weekStart: 0,
      time: false,
      minDate: new Date(),
      format: 'MM/DD/Y',
      triggerEvent: 'click',
    });
  }, 100);
});

方案2:强制输入框失去焦点

Chrome有时候会自动聚焦页面里第一个带required属性的输入框,而某些版本的bootstrapMaterialDatePicker可能偷偷把focus事件也当成了触发条件(哪怕你指定了triggerEvent: 'click')。初始化前先让输入框失去焦点就行:

$(document).ready(function() {
  // 先让目标输入框失去焦点,避免Chrome自动聚焦触发弹窗
  $('.js-calendar-future').blur();
  
  $('.js-calendar-future').bootstrapMaterialDatePicker({
    weekStart: 0,
    time: false,
    minDate: new Date(),
    format: 'MM/DD/Y',
    triggerEvent: 'click',
  });
});

方案3:手动绑定触发事件

如果上面的方法都不管用,咱们就彻底接管事件绑定,不让插件自己瞎搞:

$(document).ready(function() {
  // 初始化选择器,但禁用插件自带的事件绑定
  const datePicker = $('.js-calendar-future').bootstrapMaterialDatePicker({
    weekStart: 0,
    time: false,
    minDate: new Date(),
    format: 'MM/DD/Y',
    triggerEvent: null, // 取消默认事件绑定
  });
  
  // 手动给输入框绑定click事件,点击才唤起选择器
  $('.js-calendar-future').on('click', function() {
    datePicker.bootstrapMaterialDatePicker('show');
  });
});

另外你也可以检查一下bootstrapMaterialDatePicker的版本,看看有没有针对Chrome最新版本的修复补丁,必要时升级到最新版试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:19:07