我有一个ASP.NET网络表单应用程序,其中包含我在页面中导航时成功触发的确认对话框。我有页面提示用户确认保存或取消更改。当我导航到另一个链接时,该页面不会触发确认消息。
我正在尝试触发以下事件,但它仅适用于"相同"按下,返回,上一个,第一个等页面。当我点击页面上的菜单来加载新页面时,我没有看到在卸载之前。
当我通过单击ASP.NET中的菜单导航到另一个链接时,如何修改以下代码以提供相同的确认?
$(window).on("beforeunload", function () {
if ((updateCancelClicked == false) && ($("#MainContent_ErrorContent").text() != "No Action Items Found.") &&
($("#FormChanged").val() == "true") || ($("#MainContent_btnUpdateItem").is(":disabled") == false) &&
($("#MainContent_btnCancelItem").is(":disabled") == false)) {
if ((!firstConfirm || $("#MainContent_btnUpdateItem").is(":enabled")) && $("#MainContent_ConfirmAlertOn").val() == "True")
{
firstConfirm = true;
confirmVal = confirm("Save changes? \"OK\" saves changes. \"Cancel\" removes changes.");
}
if (confirmVal) {
$.ajax({
type: "POST",
url: "ViewEditActionItem.aspx/UpdateFormData",
data: JSON.stringify({ actionItemID: $.trim($("#MainContent_txtActionItemID").val()), assignedDate: $.trim($("#MainContent_txtAssignedDate").val()), originalDueDate: $.trim($("#MainContent_txtOriginalDueDate").val()), ECD: $.trim($("#MainContent_txtECD").val()), ClosedDate: $.trim($("#MainContent_txtClosedDate").val()), criticality: $.trim($("#MainContent_ddlCriticality").val()), category1: $.trim($("#MainContent_ddlCategory1").val()), category2: $.trim($("#MainContent_ddlCategory2").val()), ownerUserID: $.trim($("#MainContent_ddlOwner").val()), altOwnerUserID: $.trim($("#MainContent_ddlAltOwner").val()), actionItemTitle: $.trim($("#MainContent_txtActionItemTitle").val()), progressID: $.trim($("#MainContent_ddlProgress").val()), actionItemStatement: $.trim($("#MainContent_txtActionItemStatement").val()), closureStatement: $.trim($("#MainContent_txtClosureStatement").val()), closureCriteria: $.trim($("#MainContent_txtClosureCriteria").val()), notes: $.trim($("#MainContent_txtNotes").val()) }),
contentType: "application/json",
dataType: "json",
async: false
});
}
}
else {
$("#MainContent_ConfirmAlertOn").val("True");
return;
}
});