【发布时间】:2023-03-22 19:47:01
【问题描述】:
我已经使用 jQuery Dialog 构建了通用 jQuery 插件来显示消息。现在这被称为我的 jQuery $.ajax -->done 函数。我需要在 .ajax 函数中捕获对话框关闭事件,以便在此之后相应地重定向页面。我如何做到这一点??
Ajax 函数
$('#NewFunctionNavigationForm').submit(function (e) {
e.preventDefault();
var DataToPost = JSON.stringify($('#NewFunctionNavigationForm').serializeObject());
var formURL = $(this).attr("action");
$.ajax({
type: "POST",
url: formURL,
dataType: "JSON",
contentType: "application/json; charset=utf-8",
data: DataToPost,
})
.done(function (data, textStatus, jqXHR) {
alert("Success: " + data.Response);
$(this).MyMessageDialog({
_messageBlockID: "_StatusMessage",
_messageContent: "ccc"
});
????????????? i need to capture dialog close event here??
window.location = "/SystemCore/SystemCoreHome";
})
.fail(function (jqXHR, textStatus, errorThrown) { alert("Error"); })
.always(function (jqXHROrData, textStatus, jqXHROrErrorThrown) { alert("complete"); });
});
消息对话框插件
function ($) {
var _messageWrap = {
_messageBlockID: "",
_messageContent: ""
};
$.fn.MyMessageDialog = function (_messageWrap) {
alert("from plugin "+_messageWrap._messageBlockID + " " + _messageWrap._messageContent);
$("#" + _messageWrap._messageBlockID).text(_messageWrap._messageContent);
if($("#"+_messageWrap._messageBlockID).length) //check if div with given ID exists
{
$("#" + _messageWrap._messageBlockID).dialog({
modal: true,
autoOpen: false,
buttons: {
Ok: function () {
$(this).dialog("close");
}
},
width: "50%",
});
//clear existing content if there are any in given Div
$("#" + _messageWrap._messageBlockID).html("");
//add content to div
$("#" + _messageWrap._messageBlockID).append(_messageWrap._messageContent);
$("#" + _messageWrap._messageBlockID).dialog("open");
}
else
{
alert("not exist");
}
};
}(jQuery));
【问题讨论】:
标签: javascript ajax asp.net-mvc asp.net-ajax jquery-dialog