問い合わせフォームのあるページがロード時に下にスクロールする


10

ウェブサイトに問題があります。ロードすると、自動的に一番下までスクロールします。

名前を中心としたお問い合わせフォームがあるからです。このフォーカスを削除するにはどうすればよいですか?

地点

回答:


23

この行を連絡先から変更します

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

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

2番目のパラメーターは、「最初のフィールドに焦点を合わせる」ことを意味します。そのため、下にスクロールします。


問題を解決して、下にスクロールします。
Sourav

1

私のように、バックエンド開発をアウトソーシングしている会社で働いている場合、フォームテンプレートにアクセスできない可能性があります。この場合、VarienForm関数の引数を変更することはできません。(承認された回答に従ってこれらの引数変更できる場合は、変更する必要があります。)


影響を受けるページの本文に<script>タグ内でコード(以下に提供)を追加できます。

要約すると、コードはフォーカスされた要素が初めて変更されるのを待ってから、その要素のぼかしを解除し、スクロールをページの上部にリセットします。スクリプトの実行から10秒以内に何も起こらない場合は、スクリプト自体がオフになります。これは、エラーが発生した場合にスクリプトが永久に実行されるのを防ぐための安全策です。

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

})();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.