jquery 表单提交后滚动到 div

ozo*_*dio 0 forms jquery submit scrollto scrolltop

我已经测试了滚动到DIV ID 的所有方法,但不起作用我知道出了问题,但我不知道是什么,这是我的 jquery 脚本

$("#sub").click( function() {

$("#myForm").validate({
      rules: {
        page: {
          required: true,
          url: true
        },
        link: {
          required: true,
          url: true
        }
      },
      submitHandler: function(form) {
        $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), 
        function(info){ 
            $("#result").html(info); 
        });

        clearInput();

        $("#myForm").submit( function() {
            return false;   
        });
                    }
    });
});

function clearInput() {
    $('html, body').animate({
        scrollTop: $("#result").offset().top
    }, 2000);
}
Run Code Online (Sandbox Code Playgroud)

我不知道是否有什么东西混合了东西,但 jquery 不滚动,我scrolltop()在一个新的 php 文件中测试该函数并且工作正常,但当我在这个文件上使用它时却没有。

更新:

感谢您的帮助 netblognet 我已经得到它,我做了这个:

$("#sub").click( function() {

    $("#myForm").validate({
          rules: {
            page: {
              required: true,
              url: true
            },
            link: {
              required: true,
              url: true
            }
          },
          submitHandler: function(form) {
            $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), 
            function(info){ 
                $("#result").html(info); 
                //$(this).animate(function(){
                $('html, body').animate({
                    scrollTop: $("#result").offset().top
                     }, 2000);
            //});
            });


            $("#myForm").submit( function() {
                return false;
            });
                        }
        });
});
Run Code Online (Sandbox Code Playgroud)

我把代码放在收入结果的同一个地方:D

net*_*net 6

您必须在提交的回调中运行动画。当初始函数运行时会触发回调。(在本例中为提交函数。)

$("#myForm").submit( function() {
    $('html, body').animate({
         scrollTop: $("#result").offset().top
    }, 2000);
    return false;
});
Run Code Online (Sandbox Code Playgroud)

如果您的表单是动态加载的,您必须附加一个处理程序。

$('#myForm').on('submit', function() {
    $('html, body').animate({
         scrollTop: $("#result").offset().top
    }, 2000);
    return false;
});
Run Code Online (Sandbox Code Playgroud)