2010-10-13 35 views
12

使用JQuery Validation插件,我试图调用.valid()方法,但没有在屏幕上显示错误消息的副作用。我已经尝试了多种方案,但没有成功,我最近的是:Jquery验证:调用有效且不显示错误?

$('#signup').validate({ 
      showErrors: function() { return; }, 
      errorElement: "", 
      errorClass: "", 
      errorPlacement: function() { }, 
      invalidHandler: function() { }, 
      highlight: function(element, errorClass) { }, 
      unhighlight: function(element, errorClass) { } 
     }); 

$('#displayPurposes').text("Valid: " + $("#EMailAddress_EmailAddress").valid()); 

虽然.valid()调用工作正常但还是导致显示错误消息的副作用。

我不希望发生这种情况,请帮助。

回答

-4

那么不要试图禁用插件所做的任何错误布局,您可以使用CSS'强制'隐藏创建错误消息元素。喜欢的东西:

label.myvalidationclass { display: none !important; } 

哪里myvalidationclass或者是默认的错误类名或你自己的。

我知道这不是一个很好的解决方案,但在我看来,显示错误消息是该插件的核心功能之一。 d)。

+0

道歉接受很晚了,但如果我还记得我做了类似黑客的CSS事情结束了。 – soul 2012-10-22 14:51:32

47

您可以通过调用checkForm()而不使用CSS黑客来做到这一点。

var isValid = $('#signup').validate().checkForm(); // true|false 

checkForm()不会触发UI更改。

但是,有一个副作用。表单字段现在将在更改/焦点/模糊上进行验证,这可能不合需要。

$('#signup').validate().submitted = {}; 

导致:您可以通过重置submitted对象禁用此行为

var validate = $('#signup').validate(); // Get validate instance 
var isValid = validate.checkForm(); // Valid? 
validate.submitted = {}; // Reset immediate form field checking mode 
+2

+1:这是一个更好的解决方案,并允许灵活性只在需要时验证没有消息。 – 2013-06-18 14:28:39

+1

这是我使用的解决方案,我可以向大家推荐。 – 2015-05-25 16:46:35

+1

有没有办法找出某个输入是否有效而不突出显示它? – simaglei 2015-09-18 12:32:42