jquery 对话销毁语法

jquery dialogue destroy syntax

我有一个加载局部视图的对话框,从我的 MVC 4 应用程序中的许多不同视图调用。它有一个文本区域和一个关于文本区域中剩余字符数的小提示。在页面加载时一切正常,但是当对话框关闭时,无论是通过发送按钮还是对话框标题栏中的关闭按钮,当它重新打开时,'#textarea_feedback' div 内容消失直到页面重新加载。我相信我应该使用 dialog('destroy') 但似乎无法正确使用语法。它要么没有效果,要么在页面底部显示部分视图。请告知,希望我已经包含了足够的代码来识别问题。谢谢

   $(document).ready(function () {
    var text_max = 160;
    $('#textarea_feedback').html(text_max + ' characters remaining');
    $('#txtMessage').keyup(function () {
        var text_length = $('#txtMessage').val().length;
        var text_remaining = text_max - text_length;
        $('#textarea_feedback').html(text_remaining + ' characters remaining');
    });


    $('#send').click(function (e) {
        if ($('#txtSMSMessage').val().trim()) {
            e.preventDefault();
            $.ajax({
                type: "POST",
                data: $('form#Composer').serialize(),
                url: '/MyController/MyAction',
                success: function (data) {
                    alert('Sent');
                    $('#Composer').closest("div.ui-dialog-content").dialog("close");
                },
                error: function (a, b, c) {
                    $("#Composer").unblock();
                    alert(b);
                }
            });
            //$('#Composer').closest("div.ui-dialog-content").dialog("destroy");
        }
    });

    //var dialog = $('#Composer').closest("div.ui-dialog-content").dialog();
    //console.debug(dialog);
    //dialog.on("dialogbeforeclose", function (event, ui) {
    //    dialog.dialog('destroy')
    //});

});

想要 post 回答以防它可以帮助其他人,真的是 LShetty 的评论引导我朝着正确的方向前进。添加到创建对话框的 Ajax 调用的 CLOSE 函数中:

    $.ajax({
    url: 
      ...
    type: "POST",
    success: function (responseText, textStatus, XMLHttpRequest) {
        dialog.html(responseText);
        dialog.dialog({
            ...
            title: 'Send message',
            open: function () {
               ...
            },
            close: function () {
                $(this).dialog('destroy').remove()
            },
            ...
        });
    }