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

如何解决Django中jQuery未定义及$(...).modal不是函数的问题?

解决Django项目中Modal调用的JS错误问题

核心问题分析

你遇到的$(...).modal is not a function错误,本质是Bootstrap版本与JS调用方式不匹配,加上脚本加载顺序仍有问题导致的:

  • 若用Bootstrap 3/4:必须依赖jQuery,且加载顺序严格要求jQuery在前,Bootstrap JS在后,bootstrap-toggle要在Bootstrap JS之后
  • 若用Bootstrap 5:已移除jQuery依赖,不能再用$(...).modal()这种jQuery写法,要改用原生Bootstrap Modal API

分版本解决方案

方案一:使用Bootstrap 3/4(依赖jQuery)

严格按照以下顺序加载脚本:

<!-- 1. 先加载jQuery(建议用较新版本,比如3.x,避免兼容性问题) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<!-- 2. 加载Bootstrap的JS文件 -->
<script src="{% static 'path/to/bootstrap.min.js' %}"></script>
<!-- 3. 加载bootstrap-toggle.min.js(必须在Bootstrap JS之后) -->
<script src="{% static 'passkeys/js/bootstrap-toggle.min.js' %}"></script>
<!-- 4. 最后加载你的自定义脚本 -->
<script type="application/javascript" src="{% static 'passkeys/js/base64url.js'%}"></script>
<script type="application/javascript" src="{% static 'passkeys/js/helpers.js'%}"></script>
<script type="application/javascript">
  // 调用Modal的函数示例
  function openModal() {
    $('#popUpModal').modal('show');
  }
</script>

方案二:使用Bootstrap 5(无jQuery依赖)

Bootstrap 5不再需要jQuery,需改用原生JS调用Modal,同时注意插件兼容性:

<!-- 1. 加载Bootstrap 5的bundle包(包含Popper.js,必须) -->
<script src="{% static 'path/to/bootstrap.bundle.min.js' %}"></script>
<!-- 2. 加载适配Bootstrap 5的toggle插件(原bootstrap-toggle可能不适配,需替换为兼容版本) -->
<script src="{% static 'passkeys/js/bootstrap-toggle.min.js' %}"></script>
<!-- 3. 自定义脚本 -->
<script type="application/javascript" src="{% static 'passkeys/js/base64url.js'%}"></script>
<script type="application/javascript" src="{% static 'passkeys/js/helpers.js'%}"></script>
<script type="application/javascript">
  // 调用Modal的函数示例
  function openModal() {
    const modal = new bootstrap.Modal(document.getElementById('popUpModal'));
    modal.show();
  }
</script>

额外检查项

  • 确认Bootstrap CSS已正确加载,否则Modal样式会异常
  • 避免重复加载jQuery或Bootstrap JS,这会导致冲突
  • 若使用Bootstrap 5,确保bootstrap-toggle插件是适配5.x版本的,否则会出现新的兼容性错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:05:32