2011-02-01 59 views
0

我在模態模式模式下使用jQuery-UI對話框在頁面上顯示幾個「編輯」表單。DOM更新後jQuery-UI對話框中斷

截至目前編輯表單被加載到通過對話股利和Ajax調用。所述表格也通過ajax提交。將ajax函數調用回另一個函數,該函數使用新的編輯數據更新主頁面的DOM。

我的問題是,我以後無論是DOM更新失去了參考UI對話框。那麼問題是,我不能再在對話中調用方法(I.E.'close')。

如果我重新初始化的對話框中,我遇到了在那裏通過AJAX提交我的形式,使所有呼叫的問題多次......彷彿形式勢必多次對話。

有沒有辦法來解決這個問題和DOM更新後,保持我參考了對話?

繼承人一些代碼... 初始化對話框上的文件準備好。

$('#dialog').dialog({   
    autoOpen: false,   
    modal: true, 
    draggable: false, 
    resizable: false, 
    height: 450, 
    width: 550, 
}); 

按鈕來打開對話框並加載編輯表單...

('#editInfo').live("click", function() { 
    $('#dialog').dialog('open') 
    $.ajax({ 
     type: 'GET', 
     url: '../info/edit', 
     data: {}, 
     success: function (response) { 
      $('#dialog').html(response);//loads the partial edit view into the dialog div...works fine to here. 
      } 
    }); 
    return false; 
}); 

後表單被提交此功能被稱爲成功更新dom和主頁...

function infoUpdate(response) { 
    $('#dialog').dialog('close'); 
    $('#info').html(response); 
} 

DOM獲取調用後更新的罰款,但該對話框不會關閉...

編輯: 我要指出,我使用asp.net MVC 3加載到對話框編輯表單是一個局部視圖,並提交後,得到更新的主要頁面上的元素也有部分view..not知道這是否事項

EDIT 2 發現一個solution..posted的答案,但有新的問題(參考下面的答案)

+0

我認爲我們將需要看到的密碼 - 至少部分初始化對話框並修改DOM。 – 2011-02-01 14:34:50

回答

1

我已經初始化Ajax調用

('#editInfo').live("click", function() { 
    $('#dialog').dialog('open') 
    $.ajax({ 
     type: 'GET', 
     url: '../info/edit', 
     data: {}, 
     success: function (response) { 
     $('#dialog').html(response); 
     $('#dialog').dialog({   
      autoOpen: true,   
      modal: true, 
      draggable: false, 
      resizable: false, 
      height: 450, 
      width: 550, 
     }); 

     } 
}); 
return false; 

})的成功,函數內部的模態對話框固定這一點;

這允許對話框在提交回調觸發時關閉,這解決了我在問題中提出的問題。但是,我在多次提交表單時與多次打開的模式一起出現問題.... I.E。每次打開/加載對話框時,表單都會提交一次。儘管我在表單回調中破壞了對話框,但發生了這種情況。我可能需要打開一個新的問題,針對此問題,除非有人速戰速決...

形式提交的回調......

function infoUpdate(response) { 
    $('#dialog').dialog('destroy'); 
    $('#info').html(response); 
}