如何清空Div关闭对话框

时间:2011-06-06 19:58:02

标签: jquery dialog

方案 我有一个由jquery UI对话框创建的Dialog。 只需单击一个表单即可打开,单击即可提交表单。 反馈显示在宣布成功的表格下方。在关闭对话框之前,我想删除成功消息,以便下次打开对话框/表单时不显示该消息。注意:可能会在不重新加载页面的情况下多次打开对话框/表单。 该过程可以解决成功消息。

我尝试过的解决方案 我在对话框脚本中添加了以下行。我相信语法是正确的,但添加此行会破坏脚本。

beforeClose: function (event ui) {
    $("div#output1").empty();
                      },

完整对话框脚本

$(document).ready(function() {
$('#target a').each(function() {
    var cancel = function() {
        $dialog.dialog('close');
    };
    var $link = $(this);
    var $dialog = $('<div></div>')
        .load($link.attr('href'))
        .dialog({
            autoOpen: false,
            title: $link.attr('title'),
            width: 700,
            height: 800,
            modal:  true,
            buttons: { "Ok": cancel, "Cancel": cancel},
            beforeClose: function (event ui) {
                $("div#output1").empty();
        },
            open:   function (event,ui) {
                $("input[name='url']").val(pageAddress);
                }
        });

    $link.click(function() {
        $dialog.dialog('open');
        $( "#accordion" ).accordion({
            collapsible: true,
            active: false
        });
        return false;
    });
    });
});

查看其他示例我似乎对语句的结构是正确的,但我很感激任何关于为什么这种方法会破坏我的脚本的指针。

感谢。

2 个答案:

答案 0 :(得分:4)

你的语法无效。在event

中的uibeforeClose: function (event ui) {之间添加逗号
beforeClose: function (event, ui) {
    $("div#output1").empty();
                      },

正常工作:http://jsfiddle.net/niklasvh/8DD9L/

答案 1 :(得分:2)

您可以使用$("div#output1").html("");清空div。 - 这仍然会保留在DOM中......