1

我正在向现有代码添加验证。视图是使用 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  
}
});
4

1 回答 1

0

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

$('.container).height($('.container).height() + 1)
于 2012-06-20T18:55:55.460 回答