显示错误后的Jquery验证事件

时间:2014-12-12 08:10:16

标签: javascript jquery jquery-validate

我正在使用这个插件 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末尾的error元素(我的div中有另一个元素)只是它看起来像这样

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

由于

2 个答案:

答案 0 :(得分:0)

试试这可能你想要这个

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

答案 1 :(得分:0)

您的代码......

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

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

但是,我不知道为什么你要问如何根据the example in the documentation计算错误消息,就像已存在内置方法一样。

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

DEMO:http://jsfiddle.net/nv282zom/

FWIW,您的代码中也存在缺陷,因为您只计算具有错误类的元素。 This will always give you double the number of elements因为错误类已应用于input元素和错误消息。


引用OP

  

“我要做的是在验证完成后操纵错误消息的元素。”

但是,你只是告诉我们你想要数数。还有许多其他回调函数和选项可用于错误消息操作......只需解释您想要的内容。