JavaScript 确认取消按钮仍在发布

JavaScript confirm cancel button still posting

确认对话框中的取消按钮仍然导致 post 返回并调用服务器端按钮事件。

   <asp:Button ID="btnSubmit" runat="server" CssClass="CommandButton" Width="110px" OnClientClick="confirmPayment();" UseSubmitBehavior="false"
                            Text="Submit Payment" OnClick="btnSubmit_Click"></asp:Button>


function confirmPayment() {
                var isOkay = confirm("Confirm Payment?");

                if (isOkay) {
                    return true;
                } else {
                    return false;
                }
            }

我尝试调试我的代码,我可以看到它返回 false,然后返回 post。不确定我的代码是否有问题?

您需要在点击处理程序中接受 event 对象,并使用 preventDefault:

function confirmPayment(event) {
    event.preventDefault()
    ...
    ...
}

你需要在OnClientClick中写return confirmPayment 试试这个:

<asp:Button ID="btnSubmit" runat="server" CssClass="CommandButton" Width="110px" OnClientClick="return confirmPayment();" UseSubmitBehavior="false" Text="Submit Payment" OnClick="btnSubmit_Click"></asp:Button>