我正在使用jQuery来验证表单,在提交时我想滚动到我设置的类.inputError
的第一个实例:
$('#form').submit(function(e) {
e.preventDefault();
$('input').each(function(){
inputCheck.call(this);
});
errors = $('input.inputError').length;
if (errors > 0) {
$('body').scrollTop($('.inputError').first().offset().top-30);
} else {
submitForm();
}
});
这在Chrome / Safari中运行良好,但在FireFox和IE8中,它会转到类.inputError
的最后实例而不是第一个。我尝试过使用$('.inputError:first)
和.first()
都会产生相同的结果。
有什么想法吗?
答案 0 :(得分:2)
您应该使用
$('body, html').scrollTop(...
或者
$(window).scrollTop(...
如果滚动条是全局的,因为滚动条属于不同浏览器中的不同元素。
以下是一些简单的JS解决方案,如果有人在将来需要它 - >
Cross-browser method for detecting the scrollTop of the browser window