在做表单验证时,如果表单信息比较多,导致提交按钮和错误信息没在已屏显示,就会导致无法提交,又没有友好提示的问题。
理想的解决办法就是在验证发生错误时,自动定位到错误提示的地方,方便用户查看和修改。
$("#Send").click(function (e) {
// 这行是 Opera 的补丁, 少了它 Opera 是直接用跳的而且画面闪烁
$body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $(‘html‘) : $(‘body‘)) : $(‘html,body‘);
//表单提交出现错误定位到具体出错位置 方便用户进行修改
if (!$(‘form).valid()) {
var targetId = "";
$($(‘form).validate().errorList).each(function (index, item) {
if (targetId == "") {
targetId = $($(item).attr(‘element‘)).attr(‘id‘);
}
});
$body.animate({ scrollTop: $(‘#‘ + targetId).offset().top - 30 }, 500);
return;
}
});
跳转到出错的第一个位置
原文:http://www.cnblogs.com/MaxBlack/p/5845276.html