MVC 中的 Bootstrap 模式,双背景 - 背景出现两次

2024-01-15

我在使用 jQuery 生成引导模式时注意到一个问题。在动态生成的部分视图(我的模式)中添加更多 JavaScript 会导致出现双背景。有谁知道为什么会发生这种情况?我正在使用 jquery-1.8.2.js 和 Bootstrap v3.1.1。非常感谢。

App.js

$(document).ready(function () {

$('.modal-button').on('click', function (e) {
    // Remove existing modals.
    $('.modal').remove();
    $.ajax({
        url: '/Ajax/GetSearchModal/',
        type: "get",
        cache: false,
        success: function (data) {
            var modal = $(data);
            $(data).modal({
                backdrop: 'static',
                keyboard: false,
            });
        }
    });
});

});

部分视图(我的模态)

@model MVCApp.Web.Models.ModalSearchModel
<div id="Ajax-Modal" class="modal fade" aria-hidden="true" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h3>
                    Select Something
                </h3>
            </div>
            @using (Html.BeginForm(Model.Action, Model.Controller, FormMethod.Post))
            { 
            <div class="modal-body">
                @Html.HiddenFor(m => m.SelectedDropDownID, new { @class     = "select-something-ddl", style = "width:100%", placeholder = "Search..." })
            </div>
            <div class="modal-footer">
                <button type="submit" value="Continue">Continue</button>
                <button type="button" value="Cancel" data-dismiss="modal">Cancel</button>
            </div>
            }
        </div>
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function () {

        // This here causes the drop backdrop

        // select2 code here
    });
</script>

UPDATE

将 javascript 从模式移动到成功处理程序并不能满足我想要实现的目标。我希望启动 select2 下拉列表。我可以让它在成功处理程序中工作的唯一方法是使用以下内容:

            modal.on('shown.bs.modal', function () {
                $('#SelectedDropDownID').select2({
                    ajax: {
                        url: '/Ajax/FetchResults/',
                        dataType: 'json',
                        delay: 250,
                        data: function (searchTerm) {
                            return { query: searchTerm };
                        },
                        results: function (data) {
                            return { results: data };
                        }
                    },
                    minimumInputLength: 2,
                    formatResult: formatRepo,
                    formatSelection: formatRepoSelection
                });

            });

但是, select2 激活存在延迟,因为直到模态完成动画进入屏幕后才会触发显示的事件。如果我在显示的事件之外运行代码, select2 永远不会激活。

SOLVED

非常感谢 Pasha Zavoiskikh 和 cvrebert。我必须更新 Bootstrap 和 jQuery 来修复双背景。根据 Pasha 的评论,在调用 select2 之前将模态附加到正文修复了 select2 不触发。这是完整的修复:

function formatRepo(item) {
    var markup = "<table class='item-result'><tr>";
    if (item.text !== undefined) {
        markup += "<div class='item-name' data-jtext=" + item.text + " data-jid=" + item.id + ">" + item.text + "</div>";
    }
    markup += "</td></tr></table>"
    return markup;
}

function formatRepoSelection(item) {
    return item.text;
}


$('.modal-button).on('click', function (e) {
    // Delete existing modals.
    $('.modal').replaceWith('');
    // Get modal.
    $.ajax({
        url: '/Ajax/GetSearchModal/',
        type: "get",
        cache: false,
        success: function (data) {
            var modal = $(data);
            $('body').append(modal);
            $('#SelectedDropDownID').select2({
                ajax: {
                    url: '/Ajax/FetchResults/',
                    dataType: 'json',
                    delay: 250,
                    data: function (searchTerm) {
                        return { query: searchTerm };
                    },
                    results: function (data) {
                        return { results: data };
                    }
                },
                minimumInputLength: 2,
                formatResult: formatRepo,
                formatSelection: formatRepoSelection
            });

            modal.modal({
                backdrop: 'static',
                keyboard: false,
            });
        }
    });
});

这是我遇到的一个旧帖子,因为这个问题仍然存在于 Bootstrap 中,提供我的意见来帮助追随我的人。

问题 - 关闭模态后,类为“modal-backdrop”的单个 Div 仍然存在。

1) 将类 btn-close 添加到两个关闭按钮:-

<div class="modal fade" id="myModal">
    <div class="modal-dialog">
      <div class="modal-content">

        <!-- Modal Header -->
        <div class="modal-header">
          <h4 class="modal-title">Modal Heading</h4>
          <button type="button"  class="close btn-close" data-dismiss="modal">&times;</button>
        </div>

        <!-- Modal body -->
        <div class="modal-body">
          Modal body..
        </div>

        <!-- Modal footer -->
        <div class="modal-footer">
          <button type="button"  class="btn btn-danger btn-close" data-dismiss="modal">Close</button>
        </div>

      </div>
    </div>
</div>

2) 在页面底部添加此 Jquery :-

$(document).ready(function(){
        $('.btn-close').click(function(){
             $(".modal-backdrop").remove();
        });
 });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 中的 Bootstrap 模式,双背景 - 背景出现两次 的相关文章

  • 有没有办法限制 Google 地点自动完成功能搜索城市的街道?

    使用 Google 地方信息时可以将搜索限制在城市的街道吗Autocomplete 您可以设置Autocomplete使用选项geocode作为类型 这将限制返回到地址的结果 var input document getElementByI
  • Django:单击按钮加载另一个模板

    我已经在 django 项目上工作了几个星期 只是玩玩以便掌握它的窍门 我有点困惑 我现在有一个名为 home html 的模板 我想知道是否可以将另一个名为 profile html 的模板设置为 home html 模板上的链接 我有一
  • 绑定到列表的复杂模型

    我一直在尝试 MVCContrib 中的 NameValueDeserializer 它将采用 IList 作为控制器的参数 并将表单及其元素绑定到它 但我只是想知道 MVC Beta 是否有任何方法可以做到这一点 我知道您可以绑定强类型对
  • 使用 ASP.NET MVC Linq To SQL 进行验证:如何避免编辑生成的源?

    我正在阅读一些关于验证的文档ASP NET MVC 忽略那些建议重新发明轮子编写自己的验证逻辑的人 大多数文章提倡使用xVal或数据注释验证器 两者都允许通过装饰模型的属性 进行声明性验证 我想我会去xVal 因为它似乎是最受建议的 因此
  • 使 css nth-child() 只影响可见

    有没有办法用这个CSS只影响可见元素 table grid tr alt nth child odd background ebeff4 table grid tr alt nth child even background ffffff
  • 注销按钮在 mvc 应用程序中不起作用

    我有一个具有不同用户帐户和密码的 MVC 应用程序 登录功能工作正常 但当我单击注销按钮时 出现 404 错误 应用程序中的服务器错误 无法找到该资源 描述 HTTP 404 您正在查找的资源 或其依赖项之一 可能已被删除 名称已更改或暂时
  • Google Chrome 上的 xsl:include 和 xsl:param,带有 jQ​​uery 转换插件

    我一直尝试在 Google Chrome 中使用 XSL 但没有成功 我读到 Chrome 在 XSLT 方面存在一些错误 其中之一是它不支持 xsl include 可以在这里检查错误 http code google com p chr
  • 使用 .add() 选择多个 jQuery 对象

    是否 add http api jquery com add 方法允许一次选择多个对象而不是一次添加一个 one add two add three add four on click function 以下变量的设置方式相同 因为每个变量
  • asp.net 将值从 JS/jquery 传递到 C# 背后的代码

    我已经尝试了 所有 可能的方法 将 screen width vlaue 从 aspx 页面上的 JS 脚本发送到后面代码中的 c 虽然我可以看到 screen width 被正确分配 但它永远不会分配给我的隐藏字段价值
  • SAPUI5 等待延迟对象 // 等待 .done() 函数

    我知道有几个线程对此进行讨论 但我认为在 SAPUI5 上下文中没有线程回答有关 SAPUI5 中的延迟 同步调用的一般主题 在我的控制器中我得到 test function var dfd Deferred var sServiceUrl
  • 如何在 HTML 表格上使用分页?

    我正在尝试使用这个分页library http flaviusmatis github io simplePagination js 在我的 HTML 表格页面 特别是浅色主题 中 但不知何故 我无法理解如何在我的 HTML 页面中以这种方
  • 测试 jQuery UI 工具提示是否打开

    我正在尝试控制自动打开和关闭jQuery 工具提示 http api jqueryui com tooltip 如何测试工具提示的当前状态是否为打开 我正在使用所有内容的最新版本 Thanks 您可以尝试检查是否有任何课程ui toolti
  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • 将字符串(是一个函数)转换回 Javascript 中的函数

    我在下面将此函数作为字符串 我如何将其转换回函数 我正在从 JQuery 事件中提取事件处理程序 我想将它们存储为字符串 然后将它们转换回来 因为它们将保存在 mySQL 中 function if GActiveClick return
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 使用 NPM 安装 Bootstrap 4 alpha [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何使用 NPM 专门安装 Bootstrap 4 Alpha 使用npm install boots
  • Onblur 事件在另一个 div 的 onclick 之前触发

    如上所述 我有一个按钮 单击该按钮将打开子菜单 对于子菜单中的每个选项 都有三个元素 我认为实际上还有更多元素 但为了简单起见 将其保留为 3 我将焦点放在子菜单的主 div 白色 框架 上 Onblur 这个 div 然后我隐藏子菜单 这
  • 如何使用 Jquery .animate() 函数创建连续滚动内容? [复制]

    这个问题在这里已经有答案了 可能的重复 在jquery中实现圆形滚动条 https stackoverflow com questions 812049 implementing circular scroller in jquery 我想
  • knockoutjs通过点击事件获取元素id

    我正在使用 knockoutjs 目前我认为有些东西看起来像这样 img src images image1 png 这允许我获取视图模型中的元素 ID pressedTab function tab console log Element
  • 什么是 TinyMCE jQuery 包?

    我被要求在项目中使用 TinyMCE 编辑器 在下载页面上 有一个主包 然后是一个 jQuery 包 This package contains special jQuery build of TinyMCE and a jQuery in

随机推荐

  • 两个 pdf 水印 - 第一个的每一页和第二个的每一页

    我有两个长度相同的 pdf 文件 比如说 pdf1 pdf 和 pdf2 pdf 我正在尝试使用 pdf2 pdf 为 pdf1 pdf 的每一页添加水印 即 pdf1 pdf 第 1 页与 pdf2 pdf 第 1 页 pdf1 pdf
  • 如何从 imblearn 中的 RandomUnderSampler 获取样本索引

    有谁知道使用 imblearn 的 RandomUnderSampler 进行欠采样后是否 如何获得所选样本的索引 曾经有一个参数 return indices True 现在在新版本中被删除 并且可能被属性 sample indices
  • 如何在未安装 Git 的情况下应用“git diff”补丁?

    我的客户如何应用由git diff没有安装git 我尝试过使用patch命令 但它总是询问要修补的文件名 git diff gt patchfile and patch p1 lt patchfile 工作 但正如许多人在评论和其他答案中注
  • 检测移动 Web 应用程序是否位于本机 Facebook 应用程序中

    有没有办法检测我们的移动 Web 应用程序是否显示在本机 Facebook iOS 应用程序的 WebView 内 或者是否独立运行 据我们了解 我们不允许从他们的框架内获取 Facebook 积分 但我们are允许从我们自己的独立 Web
  • VBA宏使用单元格路径保存Excel文件

    我正在尝试使用硬线和单元格值的组合来保存文件以确定文件路径 In cell A29 我有一个输出这个的公式 2014 1月 高额现金 1 7 14 我得到一个预期 声明结束 error 代码是 ActiveWorkbook SaveAs F
  • 正则表达式替换%variables%

    我已经用了 30 分钟的时间来拔一撮头发了 我有一本字典 像这样 search replace foo bar 还有一个像这样的字符串 Foo bar foo search 我想用字典中的等效文本替换每个变量 Foo bar bar rep
  • Gradle:如何在控制台上打印依赖项工件 URL

    我们从maven转移到gradle 在maven中 使用build命令 我们可以清楚地看到从中获取依赖项的nexus URL 使用 gradle 我如何在项目构建时查看依赖项 URL 是否有任何命令行选项可以在 gradle 中执行此操作
  • 如何在 Laravel 队列中使用模型

    我正在尝试将邮件列表从 CSV 导入到我的数据库中 我的 Laravel 中有两个模型负责执行此操作 Target and Mailing one Target有很多Mailings 我正在使用带有 Beanstalkd 的队列系统 我在用
  • Redmine 3.3.0 (ruby on Rails 4.2.6) 样式表未生成/包含在 application.css 中

    我已经安装了 redmine 并设法启动它 但 UI 似乎缺少它的 css 样式 如果我点击 application SomeId css 的链接 它会显示一个包含以下消息的空 css This is a manifest file tha
  • UIGestureRecognizer 接收触摸但也将其转发给 UIControl

    你会如何允许UIGestureRecognizer of a UIView接收触摸事件 但也确保另一个 底层 上层UIView也收到同样的触摸事件 Lets say I have got the following view hierach
  • 三角形带上的纹理坐标

    我创建了一个带有 14 个顶点的几何着色器的立方体 感谢三角形条 现在的问题是如何放置我的纹理坐标 我有一个包含 3 个纹理的图像文件 立方体的顶面 底面 左 右 前 后面 我找不到为每个顶点提供纹理坐标的方法 14 我总是得到奇怪的纹理显
  • Python 3.5.1:QVariant 表示映射类型,无法实例化

    我正在使用 Python 3 5 1 我正在尝试运行此代码 但 QVariant 有问题 from PyQt4 QtCore import from PyQt4 QtGui import import sys class Model QAb
  • Python 多处理:比请求的进程更多

    为什么我看到这么多 python 进程在运行 在htop on RHEL 6 当我只使用 1 个核心时 对于相同的脚本 对于每个任务 我都会初始化一个管理处理的工作类 它会初始化其他类 但不会初始化任何子进程 tasks multiproc
  • Android SDK 的快速位图模糊

    目前 在我正在开发的 Android 应用程序中 我正在循环遍历图像的像素以使其模糊 对于 640x480 图像 这大约需要 30 秒 在浏览 Android Market 中的应用程序时 我遇到了一个包含模糊功能的应用程序 并且它们的模糊
  • 尝试启动 Firefox 时出现 Python Selenium 错误

    我在 ipython 笔记本中尝试使用 Selenium 打开 Firefox 时遇到错误 我环顾四周 发现了类似的错误 但没有任何错误与我收到的错误完全匹配 有人知道问题可能是什么以及我如何解决它吗 我使用的是 Firefox 22 我输
  • 在 Rakefile 中设置 rspec 2 任务

    我有一个看起来像这样的 Rakefile require rspec core rake task desc Run all RSpec tests RSpec Core RakeTask new spec 但这不起作用 例如 如果我尝试运
  • React 表单组件 onSubmit 处理程序不工作

    我有以下 React 组件 class Form extends React Component handleSubmit e e preventDefault let loginInput ReactDOM findDOMNode thi
  • Spring 事务因 iptables 命令而挂起

    作为进程错误处理的一部分 我们尝试使用以下 iptables 命令禁用进程与数据库计算机侦听器端口之间的通信 iptables A INPUT p tcp destination port
  • Cloud Foundry如何处理进程隔离?

    假设我使用 上提供的开源 Cloud Foundry 实现设置了自己的云cloudfoundry org http www cloudfoundry org 我部署的每个应用程序都会作为单独的用户运行吗 或者这里使用了VMWare的虚拟化技
  • MVC 中的 Bootstrap 模式,双背景 - 背景出现两次

    我在使用 jQuery 生成引导模式时注意到一个问题 在动态生成的部分视图 我的模式 中添加更多 JavaScript 会导致出现双背景 有谁知道为什么会发生这种情况 我正在使用 jquery 1 8 2 js 和 Bootstrap v3