2012-08-22 45 views
1

我目前有兩個相同的聯繫表格在網頁上使用。一個在橫幅上的每個頁面上,另一個版本位於聯繫頁面的主要部分。這是我用它來驗證它:jquery.validator和一個頁面上的兩個聯繫表單將驗證空提交

$(".contactform").each(function() { 
    $(this).validate(); 
}); 

然而,當我點擊提交在任的形式,它的對面之一(未使用)傷愈復出顯示錯誤。我不希望這個人必須填寫兩個表格(因爲他們是完全一樣的表格),並且對從哪裏出發有點困惑。

回答

2

根據xnnyygn的回答,我最終所做的是通過id來添加單獨的.validate規則,當通過類或形式完成時,這不起作用,並顯示第一個選擇錯誤結果。

$("#contactform1").validate({ 
    rules: { 
    field: { 
     required: true 
    } 
    } 
}); 

$("#contactform2").validate({ 
    rules: { 
    field: { 
     required: true 

    } 
    } 
}); 


$(document).ready(function(){ 
    $("#contactform1").validate(); 
    $("#contactform2").validate(); 
}); 

我最終在這裏使用了兩個ID而不是類或表單選擇器。否則做不到。經驗教訓,使用jquery.validator你必須使用id。

+0

hightlight或errorPlacement設置如何?這些設置是全局還是分開設置? –

0

不知道它是否解決了這個問題,但不需要明確使用'.each()'。只要寫:

$(".contactform").validate(); 
+0

它們是等價的。然而,由於jquery.validator只處理id的分開,所以要麼本質上是不正確的。不過謝謝。 – jett

1

這是我test HTML,從http://docs.jquery.com/Plugins/Validation#source,添加具有相同類別的重複形式。

我試着直接調用驗證,但是當我按下第二個提交按鈕時第一個窗體被驗證。但是,單獨調用驗證可以很好地工作。

驗證器跳轉到另一個表單的原因可能是jquery驗證器只採用第一個元素(表單)並應用規則。查看源代碼以獲取更多細節。

+0

非常感謝你,我已經添加了一個源代碼的答案,它構建了你的測試。顯然,驗證器不喜歡id選擇器。 – jett

相關問題