【问题标题】:Capture jQuery Dialog close event in $.Ajax done function [duplicate]在 $.Ajax 完成函数中捕获 jQuery 对话框关闭事件 [重复]
【发布时间】: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


    【解决方案1】:
    $('div#_StatusMessage').on('dialogclose', function (event) {            
            alert("dialog is close.. do your stuff here now");
    });
    

    【讨论】:

    • 如果您找到了适合您的答案的解决方案,请将其标记为已解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多