在jquery追加或添加innerHTML之后重绘页面

时间:2012-06-20 17:07:04

标签: javascript jquery html css ajax

我正在为现有代码添加验证。视图使用ajax加载,因为页面上有多个选项卡。通过返回JSON对象,我得到了验证本身。显示的选项卡取决于JSON对象是否包含错误。如果有错误,则不会加载新页面,并且页面顶部会显示验证错误。

问题是错误消息会将页面内容向下推,但不会扩展其容器(它们没有固定的高度),因此它会扩展到其容器之外。我认为这是因为整个页面没有重新绘制,我该如何解决这个问题?我尝试过使用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  
}
});

1 个答案:

答案 0 :(得分:0)

解决方法是获取高度并为其添加常量。不是我想要的解决方案,但它现在有效。我想知道这是否只是一个IE7问题,还没有在其他浏览器中尝试过。

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