2011-11-26 40 views
1

我有一個MVC3應用程序使用JQUERY彈出對話框對網格線進行AJAX編輯,然後使用另一個Ajax調用立即刷新網格。 請參閱下面的JQuery部分。我想要有一個功能來彈出編輯實體,如電話號碼和電子郵件,並希望標準化,因此動態對話框。JQuery動態對話框問題

現在彈出工程和更新/創建和網格刷新正常工作。但是我有一個彈出式反覆出現的問題顯示舊的值,並在調查我發現了線

success: function (r) { 
       $("#" + listEditElement).html(r.data); 
       alert("Grid done"); 
       $("#" + resultElement).dialog('close'); 
      }, 

將導致問題。如果我刪除$("#" + listEditElement).html(r.data);這是使用ajax返回數據填充網格的問題,在Popup disappers中顯示較舊的值。另一個奇怪的是Popup沒有被「關閉」呼叫關閉。但是,如果我將「關閉」呼叫移至.html()行之前,對話框會成功關閉。 任何線索我可能做錯了什麼?

function openPopup(elementId, popupFormName) { 
    $("#" + elementId).dialog({ 
     autoOpen: false, 
     title: 'Title', 
     title: $("#" + elementId).attr('title'), 
     width: 500, 
     cache: 'false', 
     height: 'auto', 
     modal: true, 
     buttons: { 
      "Save": function() { 
       $("#update-message").html('hhhhhhhhhhhhhhha'); //make sure there is nothing on the message before we continue       
       $("#" + popupFormName).submit(); 
      }, 
      "Cancel": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    $("#" + elementId).dialog("open"); 
    return false; 
} 

function closePopup(resultElement, listEditElement, actionURL) { 

    // var itemId = element.attr("data-tododb-itemid"); 

    var d = null; 

    //  $("#ajax-progress-dialog").dialog("open"); 

    $.ajax({ 
     type: "POST", 
     url: actionURL, 
     data: d, 
     success: function (r) { 
      $("#" + listEditElement).html(r.data); 
      alert("Grid done"); 
      $("#" + resultElement).dialog('close'); 
     }, 
     complete: function() { 
      $("#ajax-progress-dialog").dialog("close"); 
      $("#" + resultElement).dialog("destroy"); 
     }, 
     error: function (req, status, error) { 
      //do what you need to do here if an error occurs 

     } 
    }); 

回答

0

聽起來好像行

$("#" + listEditElement).html(r.data); 

是失敗(如r.data無效HTML),從而引發錯誤

$("#" + resultElement).dialog('close'); 

;從未得到調用。

你可以把它包裝在一個try/catch中,看看它是否阻止它沒有運行關閉線。