使用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()调用工作正常但仍然会导致显示错误消息的副作用。
我不希望这种情况发生,请帮助。
答案 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