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