使用 ScrollTo jQuery 插件提交表单后滚动到错误和成功消息

问题描述 投票:0回答:3

到目前为止,我仅针对错误消息正常工作。但是,我希望这也适用于成功消息。当按下联系表单中的提交按钮时,就会发生这种情况。单击页面右上角的联系人即可滚动到它。

您可以在这里进行测试。

这是我用于错误消息的 jQuery:

     $(document).ready(function() {
     $(".error:first").attr("id","errors");
    $("#errors").each(function (){
        $("html,body").animate({scrollTop:$('#errors').offset().top-175}, 1000);
    });
  });

有什么方法可以修改它以滚动到具有相同 offset().top-175 的 #success 和 #errors 吗?

提前致谢!

javascript jquery forms error-handling scrollto
3个回答
5
投票

你可以这样做:

  $(document).ready(function() {
     var pos = null;
     if($("#contact-form #errors.visible").length > 0)
        pos = $('#errors').offset().top;

     if($("#contact-form #success.visible").length > 0)
        pos = $('#success').offset().top;

     if(pos != null)
         $("html,body").animate({scrollTop:pos-175}, 1000);
  });

并修复脚本“js/contact_script.js”必须在 JQuery lib 之后声明的事实


3
投票

此解决方案将为 Contact Form 7(WordPress 的流行表单插件)完成相同的工作。我在使用 Google 搜索问题时发现了此页面,因此我添加了下面的解决方案来帮助其他最终进入此页面的人。

jQuery(function ($) {
    $(document).ready(function ()
    {
        var wpcf7Elm = document.querySelector( '.wpcf7' );
        wpcf7Elm.addEventListener( 'wpcf7submit', function( event ) {
            setTimeout(function() {
                $([document.documentElement, document.body]).animate({
                    scrollTop: $(".wpcf7-response-output").offset().top - 100
                }, 500);
            }, 500);
            //console.log("Submited");
        }, false );
    });
});

0
投票
$(document).ready(function () {
    var $elementToScrollTo;
    var $firstError = $(".error:first");
    if ($firstError.length > 0) {
        $firstError.attr("id", "errors");
        $elementToScrollTo = $firstError;
    }
    else {
        $elementToScrollTo = $("#success");
    }
    $("html,body").animate({
        scrollTop: $elementToScrollTo.offset().top - 175
    }, 1000);
});
© www.soinside.com 2019 - 2024. All rights reserved.