Respuestas:
Cambie esta línea desde el contacto de
var contactForm = new VarienForm('contactFormNew', true);
con
var contactForm = new VarienForm('contactFormNew', false);
El segundo parámetro significa "centrarse en el primer campo". Es por eso que obtienes el desplazamiento hacia abajo.
Si trabaja para una empresa que externaliza el desarrollo de back-end, como lo hago yo, es posible que no pueda acceder a la plantilla de formulario. En este caso, no podrá cambiar los argumentos de la función VarienForm. (Si puede cambiar estos argumentos, según la respuesta aprobada, debería hacerlo).
Puede agregar el código (que se proporciona a continuación) al cuerpo de su página afectada dentro de una <script>
etiqueta.
Para resumir, el código espera por primera vez que el elemento enfocado cambia, luego desenfoca ese elemento y restablece el desplazamiento a la parte superior de la página. Si no sucede nada dentro de los diez segundos posteriores a la ejecución del script, se apagará solo. Esto es solo una salvaguarda para evitar que el script se ejecute para siempre en caso de error.
//KILL AUTOFOCUS
(function(){
var lastActiveElement = document.activeElement;
//time elapsed in MS
var time = 0;
//stop checking after 10 seconds
var stopTime = 10000;
//interval to check for changes
var intervalTime = 20;
function _Check_For_Form_Validation(){
if ( document.activeElement != lastActiveElement ){
document.activeElement.blur();
document.documentElement.scrollTop = 0;
clearInterval( interval );
}
if ( time >= stopTime ){
clearInterval( interval );
}
}
var interval = setInterval( function(){
time += intervalTime;
_Check_For_Form_Validation();
}, intervalTime);
})();