2012-06-20 46 views
1

我正在爲現有的代碼添加驗證。該視圖使用ajax加載,因爲頁面上有多個選項卡。通過返回一個JSON對象,我得到了驗證本身的工作。顯示的標籤取決於JSON對象是否包含錯誤。如果有錯誤,則不加載新頁面,驗證錯誤顯示在頁面的頂部。在jQuery追加或添加innerHTML後重繪頁面

問題是,錯誤消息會將頁面內容向下推,但不擴展其容器(它們沒有固定高度),從而使其擴展到容器之外。我想這是因爲整個頁面沒有重新繪製,我該如何解決這個問題?我試過使用innerHTML而不是使用jQuery追加,但它沒有什麼區別,頁面仍然是扭曲的。

$.ajax({ 
type: "POST", 
url: actionURL, 
datatype: "json", 
data: this.GetParams(), 
success: function (data) { 
if (data.Error) { 
//$("#validationErrors").empty().append('<ul>'); 
//for(var i=0; i<data.ErrorMessages.length; i++) { 
//$('#validationErrors').append('<li>' + data.ErrorMessages[i] + '</li>'); 
//} 
//$("#validationErrors").append('</ul>'); 
document.getElementById('validationErrors').innerHTML = '<ul><li>Username is required</li></ul>' 
} 
else { 
//load another page 
} 
}); 
+4

這聽起來像一個CSS問題。 – Mathletics

+0

我們可以得到一個jsFiddle嗎?我自己做一個,但我需要你的CSS和HTML來做到這一點。 – Brilliand

回答

0

解決方法是獲取高度併爲其添加常數。不是我正在尋找的解決方案,但它現在可行。我不知道這只是一個IE7問題,還沒有在其他瀏覽器中嘗試過。

$('.container).height($('.container).height() + 1)