ご注意!

この記事にはPHPとJavaScriptのコードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

フィールド検証エラー時のスクロール効果を無効にする方法

WPForms が検証エラーに自動的にスクロールするのを停止しますか?デフォルトでは、フォームにエラーがある場合(シングルページフォームでもページ区切りがあるフォームでも)、WPForms は最初のエラーフィールドまでスクロールします。

このガイドでは、このスムーズスクロール効果を無効にする方法を説明します。これにより、ページはエラーに直接ジャンプするようになります。

フォームの設定

まず、フォームを作成し、フィールドを追加する必要があります。フォームの作成にヘルプが必要な場合は、最初のフォームの作成方法に関するガイドをご覧ください。

スクロール効果の無効化

スクロール効果を無効にするには、特定のフォームまたはサイト上のすべてのフォームのいずれかのオプションがあります。両方の方法を見てみましょう。

特定のフォームの場合

1つのフォームのみスクロール効果を無効にしたい場合は、このコードスニペットを使用してください。カスタムコードをサイトに追加する方法がわからない場合は、コードスニペットの追加方法に関するガイドをご覧ください。

/** Disable the scroll on field validation errors
 *
 *  @link   https://wpforms.com/developers/how-to-disable-the-scrolling-effect-on-field-validation/
 */
 
function wpf_dev_disable_scroll_to_error_by_form_id( $forms ) {
     
    // If scrollToError is disabled for at least one form on the page, it will be disabled for all the forms on the page.
 
    foreach ( $forms as $form ) {
 
        // Only run snippet on the form ID 1000
        if ( isset( $form[ 'id' ] ) && (int) $form[ 'id' ] === 1000 ) {
    ?>
 
            <script type="text/javascript">wpforms.scrollToError = function(){};</script>
 
    <?php
        }
    }
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_disable_scroll_to_error_by_form_id', 10, 1 );

コード内の 1000 を独自のフォーム ID に置き換えてください。フォーム ID の見つけ方がわからない場合は、フォームおよびフィールド ID の見つけ方に関するガイドを確認してください。

すべてのフォームの場合

このコードをすべてのフォームで実行したい場合は、代わりにこの簡単なスニペットを使用してください。

/** Disable the scrolling effect on field validation errors
 *
 *  @link   https://wpforms.com/developers/how-to-disable-the-scrolling-effect-on-field-validation/
 */
 
function wpf_dev_disable_scroll_to_error() {
 
    // If scrollToError is disabled for at least one form on the page, it will be disabled for all the forms on the page.
    ?>
 
    <script type="text/javascript">wpforms.scrollToError = function(){};</script>
 
    <?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_disable_scroll_to_error', 10 );

どちらかのスニペットを追加した後、フォーム送信中に検証エラーが発生した場合、ページはスムーズにスクロールするのではなく、最初のエラーにすぐにジャンプします。これにより、スムーズスクロールよりも直接的なナビゲーションを好むユーザーにとって、より即時的なフィードバック体験が得られます。

これで完了です!マルチページフォームを作成する際のスクロール速度を変更したいですか?詳細については、マルチページフォームでのスクロール速度の変更に関するガイドを確認してください。

参照アクション

wpforms_wp_footer_end