2012-11-07 99 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

而你们所有人,都是基于你所掌握的信息。谢谢你们! –