Réponses:
Modifier cette ligne du contact de
var contactForm = new VarienForm('contactFormNew', true);
avec
var contactForm = new VarienForm('contactFormNew', false);
Le deuxième paramètre signifie "se concentrer sur le premier champ". C'est pourquoi vous obtenez le défilement vers le bas.
Si vous travaillez pour une entreprise qui sous-traite le développement back-end, comme moi, vous ne pourrez peut-être pas accéder au modèle de formulaire. Dans ce cas, vous ne pourrez pas modifier les arguments de la fonction VarienForm. (Si vous pouvez modifier ces arguments, conformément à la réponse approuvée, vous devriez.)
Vous pouvez ajouter le code (fourni ci-dessous) au corps de votre page affectée dans une <script>
balise.
Pour résumer, le code attend la première fois que l'élément focalisé change, puis efface cet élément et réinitialise le défilement vers le haut de la page. Si rien ne se produit dans les dix secondes suivant l'exécution du script, il s'éteindra. Ceci est juste une sauvegarde pour empêcher le script de s'exécuter indéfiniment en cas d'erreur.
//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);
})();