弹出后阻止页面刷新

时间:2011-10-20 22:38:11

标签: javascript asp.net

当用户点击OK窗口的javascript alert按钮时,如何阻止页面刷新。

 <asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="verify_complete()" />


 function verify_complete() {
        if (!chkCmnts()) {
            alert("Categories/comments are required. ");
            return false;
                         }
                             }

由于

BB

2 个答案:

答案 0 :(得分:1)

您已经从JS返回false,因此您需要将标记更改为:

<asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="return verify_complete()" />

如果verify_complete()函数返回true,它将返回,如果不返回,则不会。

答案 1 :(得分:0)

您无法阻止此操作,但您可以通过弹出窗口通知用户不应重新加载。这是通过onbeforeunload窗口事件完成的,最好记录在MDN

在Script-Tag

中将其添加到弹出窗口
var controllVar = 1;

将此添加到您的父窗口。 (弹出窗口是window.open(...)的返回)。这实际上是一些密集的错误测试,因为IE中的各种风格显示不止一个Bug。

window.onbeforeunload = function (e) {
  //here we try accessing the popup
  try {
      if(!popup && popup.controllVar != 1) {
          return;
      }
  } catch(e) {
     return;
  }

  e = e || window.event;

  // For IE and Firefox prior to version 4
  if (e) {
    e.returnValue = 'YOUR ERROR MESSAGE';
  }

  // For Safari
  return 'YOUR ERROR MESSAGE';
};

如果您在回答textarea中添加一些文本而不是尝试离开页面,这将与Stackoverflow中的行为完全相同。