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

sou*_*oul 18 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());
Run Code Online (Sandbox Code Playgroud)

虽然.valid()调用正常工作,但它仍然会导致显示错误消息的副作用.

我不希望这种情况发生,请帮忙.

Bla*_*ise 63

你可以通过调用而不使用CSS hacks来做到这一点checkForm().

var isValid = $('#signup').validate().checkForm(); // true|false
Run Code Online (Sandbox Code Playgroud)

checkForm() 不会触发UI更改.

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

$('#signup').validate().submitted = {};
Run Code Online (Sandbox Code Playgroud)

结果如下:

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

  • +1:这是一个更好的解决方案,并且允许灵活性仅在需要时无需消息进行验证. (2认同)

Did*_*hys -6

好吧,您可以使用 CSS 来“强制”隐藏创建错误消息元素,而不是尝试禁用插件造成的任何错误放置。就像是:

label.myvalidationclass { display: none !important; }
Run Code Online (Sandbox Code Playgroud)

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

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

d.