JavaScript confrmation 框,仅在单击“是”时执行代码隐藏

javascript confrmation box, executing code behind only if clicked yes

本文关键字:执行 隐藏 代码 单击 confrmation JavaScript      更新时间:2023-09-26

这是继我之前的问题之后。如何在关闭弹出窗口时重新加载父页面?

我尝试了多种方法的组合,但无法使其工作。有时,无论我选择什么,后面的代码都会执行,即。"是","否"或x(关闭),有时..就像以下代码的情况一样。无论我单击哪个选项,背后的代码都不会被执行。

      <asp:Button ID="btnAccept" runat="server" Text="Accept"  OnClientClick="return Refresh()" style="HEIGHT: 19px;background: #C0003B;color: white; " /> &nbsp;<asp:Button ID="btnReject" runat="server" Text="Reject" OnClientClick="Refresh()" style="HEIGHT: 19px;background: #C0003B;color: white;"/>

</div>
   <script type="text/javascript">
       function Refresh() {
           var myBoolean = new Boolean();
           myBoolean = confirm('Are you sure?');
           if (myBoolean) {
               window.onunload = refreshParent;
               function refreshParent() {    
                   window.opener.location.reload();
                   return true;
               }
           }
           else {return false;}
       }
</script>

看看这个

function Refresh() {
    var confirmed = confirm('Are you sure?');
    if (confirmed) {
        window.onunload = refreshParent;
        return true;
    } else {
        return false;
    }
}
function refreshParent() {
    window.opener.location.reload();
}

试试这个

   function Refresh() {
       var myBoolean = new Boolean();
       if (confirm('Are you sure?')) {
       window.onunload = refreshParent;
       function refreshParent() {
           window.opener.location.reload();
           return true;
       }
   }
       else {return false;}
   }

不要使用服务器端按钮。这些元素用于在服务器中执行操作。

所以你猜怎么着?为了在服务器上执行操作,这需要发生:

  • 浏览器提交表单发出 POST 请求
  • 服务器解析表单数据并识别按下了哪个按钮
  • 服务器调用按钮的已注册事件处理程序。

因此,在您的情况下,我会取消客户端按钮的 onclick 事件。或者更简单...只需使用普通的 HTML 按钮。

<button id="btnAccept" onclick="Refresh()" style="HEIGHT: 19px;background: #C0003B;color: white; "> Accept </button>