jquery清理旧对话框

时间:2009-08-28 07:47:41

标签: jquery dialog

我正在尝试使用UI对话框来创建模态对话框。

对话框工作正常,一切顺利。我使用角落里的“X”关闭对话框。 我尝试使用dialog('destroy').remove();,但当然我无法再次打开它。

我想我只是不明白如何重新初始化对话框并且没有旧的值。

    function CreateWorkBoard()
{
    var jsmarty = WMCreateSmartyObject();
    var param =
    {
        MY_NAME1:GLOBAL_MY_NAME1,
        MY_NAME2:GLOBAL_MY_NAME2,
        LANG_NAME:LANGUAGE_NAME,
        BOARD_DIALOG_TITLE:WM_LANG_BOARD_DIALOG_BOARD_DIALOG_TITLE,
        BOARD_TITLE: WM_LANG_BOARD_DIALOG_BOARD_TITLE,
        COMMENT_TITLE:WM_LANG_BOARD_DIALOG_COMMENT_TITLE,
        MEMBERS_TITLE:WM_LANG_BOARD_DIALOG_MEMBERS_TITLE,
        CANCEL_BUTTON:WM_LANG_BOARD_DIALOG_CANCEL_BUTTON,
        REGISTER_BUTTON:WM_LANG_BOARD_DIALOG_REGISTER_BUTTON

    };
    jsmarty.assign('LANG', param);
    var divValue = WMSmartyFetch(jsmarty, 'createBoardDialog.tpl');
    document.getElementById('CREATE_DIALOG').innerHTML = divValue;
    jsmarty.clear_all_assign();
    //alert(document.getElementById('CREATE_DIALOG').innerHTML);
    //alert(divValue);

    //$.ui.dialog.defaults.bgiframe = true;
    //alert(document.getElementById('New_WorkBoard_Dialog').innerHTML);
    $('#New_WorkBoard_Dialog').dialog({

        autoOpen: false,
        height: 530,
        width:300,
        modal: true,
        resizable:false,
        buttons: {
            Cancel: function() {
                $(this).dialog('close');
                 //$('#New_WorkBoard_Dialog').dialog('destroy');
            },
            'Register board': function() {
                var board_name=document.getElementById("name");
                var comments=document.getElementById("comment");
                Createboard(board_name,comments);
                $(this).dialog('close');

            }

        },
        close: function() {

        }
    });
    $('#New_WorkBoard_Dialog').dialog('open');

}

3 个答案:

答案 0 :(得分:2)

正如Ra Yell所说,最好在关闭它之前清理它,这样你再次打开对话框时就不用担心它了。

$('input').val('');

之前的指示对我有用。

答案 1 :(得分:1)

您可以动态清除所有输入元素。

$("#New_WorkBoard_Dialog input[type='text']").each(function(index, element) {
    $(element).val("");
)};

如果您愿意,可以在对话的关闭事件中清除它:

$('#New_WorkBoard_Dialog').dialog({
autoOpen: false,
height: 530,
width:300,
modal: true,
resizable:false,
buttons: {
    Cancel: function() {
        $(this).dialog('close');
         //$('#New_WorkBoard_Dialog').dialog('destroy');
    },
    'Register board': function() {
        var board_name=document.getElementById("name");
        var comments=document.getElementById("comment");
        Createboard(board_name,comments);
        $(this).dialog('close');

    }

},
close: function() {
    $("#New_WorkBoard_Dialog input[type='text']").each(function(index, element) {
        $(element).val("");
    )};
}
});

答案 2 :(得分:-1)

如果您想再次重新打开它,请再次使用此代码:

$('#New_WorkBoard_Dialog').dialog('open');

不要打扰破坏和重新初始化对话框。没有必要这样做。