Die Seite mit dem Kontaktformular wird beim Laden nach unten gescrollt

10

Ich habe ein Problem mit meiner Website. Beim Laden wird automatisch nach unten gescrollt.

Dies liegt daran, dass es ein Kontaktformular gibt, das sich auf den Namen konzentriert. Wie kann ich diesen Fokus entfernen?

Seite? ˅

Marco
quelle

Antworten:

23

Ändern Sie diese Zeile aus dem Kontakt von

var contactForm = new VarienForm('contactFormNew', true);

mit

var contactForm = new VarienForm('contactFormNew', false);

Der zweite Parameter bedeutet "Fokus auf erstes Feld". Deshalb erhalten Sie die Abwärtsrolle.

Marius
quelle
Löse mein Problem, scrolle nach unten.
Sourav
1

Wenn Sie wie ich für ein Unternehmen arbeiten, das die Back-End-Entwicklung auslagert, können Sie möglicherweise nicht auf die Formularvorlage zugreifen. In diesem Fall können Sie die Argumente der VarienForm-Funktion nicht ändern. (Wenn Sie diese Argumente gemäß der genehmigten Antwort ändern können , sollten Sie dies tun.)


Sie können den Code (siehe unten) innerhalb eines <script>Tags zum Text Ihrer betroffenen Seite hinzufügen .

Zusammenfassend lässt sich sagen, dass der Code zum ersten Mal wartet, wenn sich das fokussierte Element ändert, dann das Element unscharf macht und den Bildlauf zum oberen Rand der Seite zurücksetzt. Wenn innerhalb von zehn Sekunden nach dem Ausführen des Skripts nichts passiert, wird es sich selbst ausschalten. Dies ist nur ein Schutz, um zu verhindern, dass das Skript im Fehlerfall für immer ausgeführt wird.

//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);

})();
Polyducks
quelle