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

jQuery datepicker模态框加载时未初始化 应给哪些元素加[data-toggle='open_modal']

问题解答

你需要把[data-toggle='open_modal']属性添加到所有用于触发模态框弹出的可交互元素上,最常见的是打开模态框的按钮、文字链接元素。

该属性的作用是作为统一的选择器标识,让你可以批量给所有模态框触发动作绑定事件,确保每次模态框加载完成后,都能重新执行datepicker的初始化逻辑,解决模态框DOM重载后datepicker绑定失效的问题。

示例代码

正确添加属性的DOM元素示例

<!-- 按钮形式的模态框触发元素 -->
<button type="button" data-toggle="open_modal" data-target="#yourModalId">
  打开带日期选择的表单
</button>

<!-- 超链接形式的模态框触发元素 -->
<a href="javascript:;" data-toggle="open_modal" data-target="#yourModalId">
  新建预约
</a>

配套的事件绑定逻辑示例

// 监听所有带指定属性的触发元素的点击动作
$('[data-toggle="open_modal"]').on('click', function() {
  // 等待模态框完全渲染后再初始化datepicker,先解绑旧事件避免重复触发
  $('#yourModalId').off('shown.bs.modal').on('shown.bs.modal', function () {
    // 先销毁可能存在的旧datepicker实例,避免重复绑定报错
    $('.datepicker-element').datepicker('destroy');
    // 重新初始化datepicker
    $('.datepicker-element').datepicker({
      // 你的datepicker自定义配置
      dateFormat: 'yy-mm-dd',
      changeMonth: true,
      changeYear: true
    });
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:02