显示错误后的 Jquery 验证事件

Jquery validation event after errors are shown

本文关键字:验证 事件 Jquery 错误 显示      更新时间:2023-09-26

我正在使用这个插件http://jqueryvalidation.org/validate

我试图做的是在验证完成后操作错误消息的元素。但是,使用此代码

$(".selector").validate({
  errorClass: 'error-message'
  invalidHandler: function(event, validator) {
       console.log($("#myDiv").find('.error-message').length); 
  }
});
输出

0,正如我猜测的那样,因为此函数在将错误消息输出到 html 之前有效。验证完成后如何运行我的代码,并且错误div 元素也已经插入到页面中。

更新

myDiv元素是特定输入的div,而不是整个表单,我想调用一个函数,该函数将移动该div 末尾的错误元素(我的div 中还有另一个元素(只是它看起来像这样

if ($("#myDiv").find('.error-message').length > 0) {
   $("#myDiv").find('.error-message').appendTo($("#myDiv"));
}

谢谢

试试这个,你可能想这个

if(! $(".selector").valid())
{
   console.log($("#myDiv").find('.error-message').length); 
}

你的代码...

invalidHandler: function(event, validator) {
    console.log($("#myDiv").find('.error-message').length); 
}

你是对的。 这只是一个计时问题,在显示消息之前触发。 除非单击按钮时已显示错误消息,否则此方法将失败。

但是,我不确定为什么您询问如何根据文档中的示例存在内置方法时如何计算错误消息。

invalidHandler: function(event, validator) {
    var errors = validator.numberOfInvalids();  // reports the number of errors
    console.log(errors); 
}

演示:http://jsfiddle.net/nv282zom/

FWIW,您的代码中也存在一个缺陷,因为您只计算具有错误类的元素。 这将始终为您提供双倍的元素数,因为错误类同时应用于输入元素和错误消息。


引用 OP

"我试图做的是在验证完成后操纵错误消息的元素。">

但是,您只是向我们展示了您想要计算它们。 还有许多其他回调函数和选项可用于错误消息操作...只需准确解释您想要什么。