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

Laravel重定向后Bootstrap弹窗无法显示问题排查

解决Laravel重定向后Bootstrap弹窗不显示且报错"Uncaught ReferenceError: $ is not defined"的问题

看起来你的问题核心是jQuery没有被正确加载,导致Bootstrap的modal无法通过$调用,同时还存在一个变量传递的小问题。我来一步步帮你修复:

1. 修复$ is not defined错误(核心问题)

控制台的这个报错说明页面在执行$(document).ready(...)时,jQuery还没完成加载。Bootstrap所有JS组件(包括modal)都依赖jQuery,必须严格保证加载顺序:

  • 先加载jQuery
  • 再加载Bootstrap JavaScript
  • 最后执行自定义脚本(比如触发modal的代码)

检查你的includes.script文件,确保引入顺序是这样的:

<!-- 优先引入jQuery -->
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<!-- 再引入Bootstrap JS(建议用bundle版本,包含Popper.js) -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- 其他自定义脚本放在最后 -->

另外,你触发modal的脚本目前放在视图内容区,可能早于jQuery加载完成。可以改成原生JS写法(不依赖jQuery),避免加载顺序问题:

<!-- Show modal Req submited-->
@if(!empty(Session::get('req_submit')))
<script>
    document.addEventListener('DOMContentLoaded', function() {
        // 用Bootstrap原生API触发弹窗
        const reqModal = new bootstrap.Modal(document.getElementById('reqModal'));
        reqModal.show();
    });
</script>
@endif

2. 修复Modal里的$token变量错误

你的控制器把token存在Session的req_submit键中,但modal的input里用了{{$token}}——这个变量在重定向后的视图里是不存在的(重定向后控制器的局部变量不会传递到视图,只有Session内容可用)。需要改成:

@if (Session::get('req_submit'))
<input type="text" value="{{ Session::get('req_submit') }}" id="input-reqno" class="text-center text-white py-2 " style="background-color: #2f1cac00;border: 0;width: auto;">
@endif

3. 修正Modal的HTML结构错误

你的modal代码末尾少了一个闭合的</div>,会导致DOM结构异常,影响弹窗渲染:

<!-- End Modal -->
</div> <!-- 补上这一行,闭合最外层的.modal容器 -->

4. 验证Session传递是否正常

可以临时在视图中添加一行代码,确认Session的值能正常获取:

{{ dd(Session::get('req_submit')) }}

如果能看到正确的token字符串,说明Session传递没问题;否则检查route('home')是否指向正确的视图,或者控制器的重定向逻辑是否有误。

把以上修改全部应用后,应该就能正常显示带token的弹窗了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 16:24:04