2016-05-13 42 views
0

我正在製作一個登錄頁面,上面有一些表單,我使用JQuery驗證程序驗證每個表單上的輸入,事情是兩個表單應該具有相同的ID並且下課了,他們通過他們的階級驗證這樣具有虛擬頁面瀏覽量的JQuery驗證程序

$('form.contact-1').validate({ 

因此,有兩種形式使用這個類,您填寫的第一個表單後,那麼它就是一個簡單的顯示/隱藏,顯示第二形式只是一個第一種形式的延伸。然後它將整個虛擬頁面視圖發送給Google Analytics。這就是它應該如何在理論中工作,缺點是當我填寫第一個表單並轉到第二個表單時,JQuery驗證程序停止工作。

有什麼辦法可以做到這一點,而無需做更多的單獨驗證?

+0

你絕對不應該使用相同的'id'不止一次在頁面上......這就是'class'是。 – Sparky

回答

0

「......事情是,兩個表格應具有相同的ID和階層,他們通過他們作爲階級驗證......」

如果你想初始化一個以上的表格插件頁面上,那麼你就需要用.each()包裹.validate()方法。

$('form.contact-1').each(function() { 
    $(this).validate({ 
     // global rules & options for all forms 
    }); 
}); 

Official Documentation

該插件可以處理每次調用只有一種形式。如果你有,你要驗證一個頁面上的多個表單,你必須初始化它們全部單獨


重要:如果你確實正在使用兩種形式相同id,那麼這是無效的HTML,所以它將是不可靠的跨瀏覽器,任何JavaScript可能會失敗或不可預知。如果不能使每個id都是唯一的,則完全刪除id,並完全依賴class指定,該指定被設計爲可重複使用。

工作演示:http://jsfiddle.net/n9Lup2dy/

+0

謝謝你的幫助:) – JonnySerra