2010-05-21 51 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