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

使用jQuery Load函数刷新Bootstrap模态框内DIV时DIV消失的问题

问题解决:Bootstrap模态框中DIV刷新后隐藏的修复

问题原因

你当前用$("#ajax_comment_div").load(" #ajax_comment_div")直接刷新自身的写法,会触发jQuery先移除原有#ajax_comment_div元素,再从加载的页面中匹配元素插入原位置。这个过程中,模态框的DOM结构可能因为元素短暂缺失导致样式异常,或者插入后的新元素没有继承原有的显示状态,最终表现为DIV被隐藏。另外,delegate是jQuery旧版事件绑定方法,兼容性和效率不如on。

修复方案

改用$.get获取内容后提取目标部分,再替换DIV内部HTML,避免元素被整体移除;同时用更规范的方式阻止表单默认行为,必要时强制维持模态框显示:

$("body").on("submit", "#ajax_comment_submit", function(e){
    e.preventDefault(); // 阻止表单默认提交行为
    $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        data: $(this).serialize(),                  
        success: function (data) {
            // 从返回的HTML中提取#ajax_comment_div的内部内容
            var commentDivContent = $(data).find("#ajax_comment_div").html();
            // 替换现有DIV的内容,而非整体替换元素
            $("#ajax_comment_div").html(commentDivContent);
            
            // 若模态框意外隐藏,强制触发显示(替换成你的模态框ID)
            $('#modal-id').modal('show');
        }
    });         
});

额外注意事项

  • 确认返回的data中确实包含#ajax_comment_div元素,否则会导致DIV内容清空,看起来像隐藏;
  • 检查模态框的CSS样式,确保动态加载的内容不会被display: none等规则影响;
  • 若使用Bootstrap 3及以上版本,模态框的显示状态依赖.modal类的show相关样式,必要时可手动为模态框元素添加show类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:22:12