【问题标题】:Bootstrap modal popup with page without page refresh带有页面的引导模式弹出窗口,没有页面刷新
【发布时间】:2023-04-07 00:32:01
【问题描述】:

我正在使用 C# 在 ASP.Net 中开发一个应用程序。在我的页面中,我使用 JQuery 和引导程序进行模式弹出显示。我已经采取了一些 html 按钮来显示弹出窗口。但我面临显示模式弹出窗口的问题。当我单击按钮时,模式弹出窗口正在显示并且页面正在刷新。我不知道为什么页面会刷新。据我所知,JQuery 在客户端工作。

请看下面的按钮代码。

<a id="editPhoto" class="btn btn-primary btn-sm" onclick="gen_all_es()" style="width:100%; margin-bottom:5px;" href="jcorp.aspx?paramControl=imagePhoto&responsePage=DesignCenter_Static.aspx&templateName=5">Add / Modify Photo</a>

<button id="editDesignation1" class="btn btn-primary btn-sm" style="width:100%; margin-bottom:5px;" data-target="#selectDesignation1_Modal" data-toggle="modal">Select Designation 1</button>
<button id="editDesignation2" class="btn btn-primary btn-sm" style="width:100%; margin-bottom:5px;" data-target="#selectDesignation2_Modal" data-toggle="modal">Select Designation 2</button>
<button id="editUploadLogo" class="btn btn-primary btn-sm" style="width:100%; margin-bottom:5px;" data-target="#selectLogo_Modal" data-toggle="modal">Select & Upload Logo</button>

请帮忙。

【问题讨论】:

  • 可能您的单击事件处理程序没有阻止链接的默认操作,即在 href 属性中加载页面。见this question
  • 将 BootBox 用于模态框,非常容易集成。
  • @DanielJ.G.面临同样的问题..

标签: c# jquery html asp.net twitter-bootstrap


【解决方案1】:

这可能是由于editPhoto的a标签上的href导致了url刷新

更改您的 gen_all_es() 函数以在事件中使用 preventDefault

html:

<a id="editPhoto" class="btn btn-primary btn-sm" onclick="gen_all_es(event)" style="width:100%; margin-bottom:5px;" href="jcorp.aspx?paramControl=imagePhoto&responsePage=DesignCenter_Static.aspx&templateName=5">Add / Modify Photo</a>

javascript:

function gen_all_es(e) {
    e.preventDefault();
    // your code
}

jsfiddle

【讨论】:

    【解决方案2】:

    请参阅此站点以获取模型弹出窗口

    http://www.codeproject.com/Articles/589445/JavaScript-Modal-Popup-Window
    

    还要检查此代码是否符合您的要求

    页面 JavaScript:

    function myPop() { 
        this.square = null;
        this.overdiv = null;
    
        this.popOut = function(msgtxt) {
            //filter:alpha(opacity=25);-moz-opacity:.25;opacity:.25;
            this.overdiv = document.createElement("div");
            this.overdiv.className = "overdiv";
    
            this.square = document.createElement("div");
            this.square.className = "square";
            this.square.Code = this;
            var msg = document.createElement("div");
            msg.className = "msg";
            msg.innerHTML = msgtxt;
            this.square.appendChild(msg);
            var closebtn = document.createElement("button");
            closebtn.onclick = function() {
                this.parentNode.Code.popIn();
            }
            closebtn.innerHTML = "Close";
            this.square.appendChild(closebtn);
    
            document.body.appendChild(this.overdiv);
            document.body.appendChild(this.square);
        }
        this.popIn = function() {
            if (this.square != null) {
                document.body.removeChild(this.square);
                this.square = null;
            }
            if (this.overdiv != null) {
            document.body.removeChild(this.overdiv);
            this.overdiv = null;
            }
    
        }
    }
    

    现在是 HTML 页面,使用 JavaScript 文件:

    <html> 
      <head>
        <script type="text/javascript" src="NAME OF THE PAGE!.js"></script>
        <style>
            div.overdiv { filter: alpha(opacity=75);
                          -moz-opacity: .75;
                          opacity: .75;
                          background-color: #c0c0c0;
                          position: absolute;
                          top: 0px;
                          left: 0px;
                          width: 100%; height: 100%; }
    
            div.square { position: absolute;
                         top: 200px;
                         left: 200px;
                         background-color: Menu;
                         border: #f9f9f9;
                         height: 200px;
                         width: 300px; }
            div.square div.msg { color: #3e6bc2;
                                 font-size: 15px;
                                 padding: 15px; }
        </style>
      </head>
      <body>
        <div style="background-color: red; width: 200px; height: 300px;
                    padding: 20px; margin: 20px;"></div>
    
        <script type="text/javascript">
            var pop = new myPop();
            pop.popOut("Test");
        </script>
      </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 2017-11-27
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      相关资源
      最近更新 更多