Bootstrap模式弹出窗口,页面没有页面刷新

时间:2014-08-11 13:31:55

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

我正在使用C#在ASP.Net中开发一个应用程序。在我的页面中,我使用JQuery和bootstrap进行模态弹出显示。我已经采取了一些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>

请帮忙。

2 个答案:

答案 0 :(得分:0)

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>

答案 1 :(得分:0)

这可能是由于editPhoto的a标记上的href导致网址刷新

更改您的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