Jquery验证:调用有效而不显示错误?

时间:2010-10-13 10:18:16

标签: jquery jquery-validate

使用JQuery Validation插件,我试图调用.valid()方法,而没有在屏幕上显示错误消息的副作用。我尝试了许多方案但没有成功,我的最新成果是:

$('#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()调用工作正常但仍然会导致显示错误消息的副作用。

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

2 个答案:

答案 0 :(得分:60)

您可以通过调用checkForm()而不使用CSS黑客来执行此操作。

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

checkForm()不会触发UI更改。

然而,有一个副作用。现在将在更改/焦点/模糊上验证表单字段,这可能是不合需要的。您可以通过重置submitted对象来禁用此行为:

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

结果是:

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

答案 1 :(得分:-5)

除了尝试禁用插件所做的任何错误放置之外,您可以使用CSS来“强制”隐藏创建错误消息元素。类似的东西:

label.myvalidationclass { display: none !important; }

myvalidationclass是默认错误类名称或您自己的名称。

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

d