JQuery UI对话框未正确关闭

时间:2014-10-10 09:53:21

标签: javascript jquery dialog

我正在使用JQuery对话框来呈现部分视图。

场景:

第1步:点击'添加'锚链接,带文本框的对话框将打开。

步骤2:用户填写文本框值并单击“保存”按钮。

步骤3:将保存详细信息并关闭对话框。

第4步:现在用户点击查看'锚链接,再次打开只读文本框值的对话框。

步骤5:用户将点击取消按钮。

第6步:再次用户点击'添加'锚链接,以及打开文本框的对话框。

步骤7:用户填写文本框值并单击“保存”按钮。

第8步:问题从此处开始。它应该保存用户刚刚输入的详细信息,但它保存了旧值(我们在步骤4中查看过)。

我尝试使用下面的代码在点击和打开对话框上呈现部分视图

var div = $("#DivTaskDetail");
var Title = "";

if (Mode == 1) {
    Title = "Edit Task Detail";
}
else if (Mode == 2) {
    Title = "View Task Detail";
}
else {
    Title = "Add Task Detail";
}

div.load("/Task/TaskDetailEditView?taskID=" + TaskID + "&mode=" + Mode, function () {
    div.dialog({
        modal: true,
        width: 500,
        height: 450,
        title: Title,
        resizable: false,
        close: function () {
            $(this).dialog("close");               
        }
    });
});

点击取消按钮,我写了以下代码

function onClickCancelTask() {  
$('#DivTaskDetail').dialog("close");
}

我尝试过以下不同的代码来关闭对话框,但没有一个能正常工作。

1. $('#DivTaskDetail').empty();

2. $('#DivTaskDetail').remove();

3. $('#DivTaskDetail').dialog('destroy').remove();

4. $('.ui-icon-closethick').click();

5. $('#DivTaskDetail').dialog("close");

6. $('#DivTaskDetail').dialog("destroy");

7. $("#DivTaskDetail").dialog("destroy");
   $('#DivTaskDetail').dialog('close').dialog('remove'); 

8. $('#DivTaskDetail').dialog("destroy");
   $('#DivTaskDetail').remove();

任何人都可以指导我这个。?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法并且它对我来说很好。

我使用下面的代码打开Partial View作为JQuery对话框。

 var div = $("#DivTaskDetail");
var Title = "";

if (Mode == 1) {
    Title = "Edit Task Detail";
}
else if (Mode == 2) {
    Title = "View Task Detail";
}
else {
    Title = "Add Task Detail";
}

$.ajax({
    url: "/Task/TaskDetailEditView",
    type: "Post",
    datatype: "html",
    data: { "taskID": TaskID, "mode": Mode },
    success: function (data) {
        $('#DivTaskDetail').html(data);            

        $("#DivTaskDetail").dialog({
            autoopen: false,
            width: 500,
            height: 450,
            modal: true,
            resizable: false,
            draggable: true,
            title: Title,
            open: function () {
                $('div.ui-widget-overlay').hide();
                $("div.ui-dialog").not(':first').remove();
            }
        });

        $('a.ui-dialog-titlebar-close').remove();
        $('#divProcessImage').css({ "display": "none" });
    },
    error: function (req, status, error) {
        ErrorMessage(req.responseText);
        $('#screen').css({ "display": "block", "width": "", "height": "" });
        $('#divProcessImage').css({ "display": "none" });
    }
});

点击关闭按钮,我正在使用下面的代码。

    $('#DivTaskDetail').dialog("destroy");
    $('#DivTaskDetail').html("");