gpt4 book ai didi

jquery - 如果用户单击 "Cancel"按钮,Ajax.Actionlink OnBegin 确认不会阻止调用 ajax 调用

转载 作者:行者123 更新时间:2023-12-01 03:21:13 26 4
gpt4 key购买 nike

我有以下ajax.actionlink:-

@Ajax.ActionLink("Delete", "Delete", "Answer",
new { id = answer.AnswersID },
new AjaxOptions
{
OnBegin = "deleteconfirmation1",
HttpMethod = "Post",
UpdateTargetId = @answer.AnswersID.ToString(),
OnSuccess = "deleteconfirmation",

})

以及以下deleteconfirmation1.js,在执行ajax调用之前应显示确认消息:-

function deleteconfirmation1() {
jConfirm('Deletion Confirmation', 'Are you sure you want to delete this Answer');
}

我面临的问题是,即使用户单击取消按钮,onbegin 确认也不会阻止执行 onsuccess 脚本?那么我如何使 OnBegin 作为确认阶段工作,以便应用程序将等待用户选择“确定”或“取消”,然后再处理 ajax 调用! ?? BR

最佳答案

您需要从 OnBegin 方法返回 false 才能取消请求。

请注意,Ajax.ActionLink 已支持使用 AjaxOptions.Confirm 进行确认。属性。

您还需要在 View /布局中包含 ~/Scripts/jquery.unobtrusive-ajax.js 才能使用 @Ajax. 帮助程序。

编辑问题 jConfirm :

您的问题是jConfirm的签名如下:

void jConfirm(message, [title, callback])

它不是返回 true/false,而是需要一个回调函数,当用户单击“确定”/“取消”时调用该函数。

这会导致问题,因为您需要从 OnBegin 返回 false,但您没有来自 jConfirm 的返回值回调...

所以你应该等待回调....请参阅这个SO问题Can you wait for javascript callback?(这也与jConfirm有关)了解更多信息。

结论是,您无法使用 jConfirm 来取消带有 OnBegin 方法的请求。

关于jquery - 如果用户单击 "Cancel"按钮,Ajax.Actionlink OnBegin 确认不会阻止调用 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9648867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com