2012-08-03 66 views
2

我正在使用jQuery验证插件。我有这样的代码:jQuery.validate - 有效()意外失败

$(".btn-overview-basic-save").click(function(e) { 
    if (!$('.contact-overview').valid()) { 
    } else { 
     alert("invalid") 
    } 

而且我越来越无效警报出于某种原因,即使表单填写完毕后,并没有任何错误或错误标记都显示出来。我评论了我的所有规则,我仍然得到它。我尝试添加:

errorPlacement: function ($error, $element) { 
    console.log("error", $error, $element); 
} 

但是我的控制台没有显示出来。

简单的抓住验证插件的非缩小版本并逐步完成,找出这里发生了什么最好的方法是什么?

+0

我喜欢这个插件,但它确实很特别。我遇到过这种情况,但每次都有其他原因。 – 2012-08-03 15:18:29

+0

@ngmiceli - 你可以想出任何一半的想法 - 只是在评论中转储他们,我会非常感激。 – 2012-08-03 15:19:09

+0

等等,是不是你的情况倒退?如果它无效,什么也不做,其他(有效)但警报无效? – 2012-08-03 15:22:59

回答

2

我认为这只是一些倒退逻辑的情况。你有没有错过.valid()前面的!

if (! $('.contact-overview').valid()) //if it is not valid 
{ 
     //Handle INVALID logic here 
} 
else //if it is valid 
{ 
    alert("invalid") //handle VALID logic here. Wait... 
} 

删除!也许?

+1

这将是那些日子之一......谢谢! – 2012-08-03 15:26:17

1

这里的问题if (!$('.contact-overview').valid())它应该是 if ($('.contact-overview').valid())没有

$(".btn-overview-basic-save").click(function(e) { 
    if ($('.contact-overview').valid()) { 
    } else { 
     alert("invalid") 
    } 
+0

+1 - yep - ngmiceli打败你:) – 2012-08-03 15:35:02

+0

我该怎么办,解决方法是这样,直到答案没有被接受... :) – 2012-08-03 15:38:58

+0

不用担心 - 我不能接受答案直到我问完15分钟后 - 这就是为什么它还没有被接受。 – 2012-08-03 15:46:00