diff --git a/framework/yii/assets/yii.activeForm.js b/framework/yii/assets/yii.activeForm.js index fb4c16abbe..1a2e58d34c 100644 --- a/framework/yii/assets/yii.activeForm.js +++ b/framework/yii/assets/yii.activeForm.js @@ -143,7 +143,11 @@ }); updateSummary($form, messages); if (errors.length) { - $(window).scrollTop($form.find(errors.join(',')).first().offset().top); + var top = $form.find(errors.join(',')).first().offset().top; + var wtop = $(window).scrollTop(); + if (top < wtop || top > wtop + $(window).height) { + $(window).scrollTop(top); + } } else { data.validated = true; var $button = data.submitObject || $form.find(':submit:first');