2012-11-07 132 views
0

我有檢查容器是否具有無效表單域的函數。如果它接着顯示特定容器的鏈接,則添加「hasErrors」類。jQuery「or if」語句

function treatFormLinks() { 
    if (!$('#One .required').valid()) { 
     $('#LinkOne').addClass('hasErrors');  
    } 
    if (!$('#Two .required').valid()) { 
     $('#LinkTwo').addClass('hasErrors');  
    } 
    if (!$('#Three .required').valid()) { 
     $('#LinkThree').addClass('hasErrors'); 
    } 
}; 

$("#Submit").click(function() { 
    treatFormLinks(); 
}); 

它工作正常,但如果容器#Two字段有效但容器#Three字段有一些錯誤,則會出現問題。在這種情況下,'hasErrors'類不會被添加到#LinkThree。

我知道這個函數中的邏輯存在問題,但是我怎麼會說瀏覽器在檢查這些容器之前一直檢查這些容器。

愚蠢的問題,我知道,但需要幫助無論如何:)

+0

我使用jQuery驗證插件,如果它很重要。 –

+3

您的代碼應該按原樣工作,只要您的表單由於未返回false而實際上未提交。 –

+0

從你給我們看的東西,它應該做你在問什麼。無論結果如何,上述內容都無法阻止驗證更多元素。 – Archer

回答

0

好吧,我錯一點都不明顯,這裏就是我解決了這個問題。我換成

!$('#One .required').valid() 

與此

!$('#One input, #One select, #One textarea').valid() 
在每種情況下

,現在它的工作如我所料。

+0

而你們所有人,都是基於你所掌握的信息。謝謝你們! –