2010-05-21 123 views
8

我有jquery验证程序正在运行,页面很长,所以我希望页面向上滚动,因为我在页面顶部显示错误窗体,没有人知道我可以把动画的代码放在哪里,以便在窗体出现错误时触发它?如何在jQuery验证程序插件中引发错误事件

+0

你可以发布你现在的代码来调用验证吗? – 2010-05-21 21:19:31

回答

15

可以使用invalidHandler option你想要的确切情况下,像这样:

$("form").validate({ 
    rules: { ... rules here ... } 
    invalidHandler: function(form, validator) { 
    $('html, body').animate({scrollTop: '0px'}, 300);  
    } 
}); 
+0

非常感谢,完美的工作 – 2010-05-22 01:27:16

+0

有没有办法让它滚动到特别无效的元素?所以如果你有一个巨大的形式,并在中间的某个地方有错误?在手机上这很重要,因为我可以滚动到顶部,但错误可能不在那里。 – 2015-06-04 19:25:29

5

同为@Nick建议,但插件初始化后使用:

$("form").bind("invalid-form.validate", function() { 

}); 

其相同这在插件初始化时发生在内部。 Source

+0

这是一个救星..除了对我来说,它是在同样的验证失败上发射3次。 – Damon 2016-04-28 20:35:23

+0

@Damon不知道为什么会发生这种情况 – DontVoteMeDown 2016-04-28 20:37:25

+1

@ damon可能是因为你有3种形式? – 2016-07-08 07:54:19