Po załadowaniu strona z formularzem kontaktowym przewija się do dołu

10

Mam problem z moją witryną. Po załadowaniu przewija się automatycznie do dołu.

Jest tak, ponieważ istnieje formularz kontaktowy z naciskiem na nazwisko. Jak mogę usunąć to skupienie?

Teren

Marco
źródło

Odpowiedzi:

23

Zmień tę linię z kontaktu z

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

z

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

Drugi parametr oznacza „skupienie na pierwszym polu”. Dlatego dostajesz przewijanie w dół.

Marius
źródło
Rozwiąż mój problem przewiń w dół.
Sourav
1

Jeśli pracujesz dla firmy, która zleca rozwój zaplecza, tak jak ja, możesz nie mieć dostępu do szablonu formularza. W takim przypadku nie będzie można zmienić argumentów funkcji VarienForm. (Jeśli można zmienić te argumenty, jak na odpowiedź zatwierdzone, zalecana).


Możesz dodać kod (podany poniżej) do treści strony, której dotyczy problem, w <script>tagu.

Podsumowując, kod czeka po raz pierwszy zmieniany element, a następnie odblokowuje ten element i resetuje przewijanie do góry strony. Jeśli nic nie wydarzy się w ciągu dziesięciu sekund od uruchomienia skryptu, wyłączy się. Jest to tylko zabezpieczenie, aby zapobiec uruchamianiu skryptu na zawsze w przypadku błędu.

//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
źródło