从submitHandler函数中获取jQuery验证器对象

Vin*_*ano 12 jquery jquery-validate

我试图showErrors从函数内调用jQuery验证函数,submitHandler而不必像这样保存验证器对象:

var validator = $( "#myshowErrors" ).validate();
validator.showErrors({
    "firstname": "I know that your firstname is Pete, Pete!"
});
Run Code Online (Sandbox Code Playgroud)

有没有办法从submitHandler方法中获取验证器对象,如下所示:

$( "#myshowErrors" ).validate({
  submitHandler : function(form) {

    $(form).ajaxSubmit({
      success : function(result) {

        var validator = // Get validator here somehow?
        validator.showErrors(result.fieldErrors);

      }
    });

  }
});
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我希望我可以submitHandler在整个项目的多个地方使用相同的方法.

Krz*_*iek 19

Validator对象存储在表单元素数据中:

var validator = $.data( form, "validator");
Run Code Online (Sandbox Code Playgroud)

编辑:

实际上验证器也应该存储在this:

$( "#myshowErrors" ).validate({
  submitHandler : function(form) {
    var validator = this;

    $(form).ajaxSubmit({
      success : function(result) {
        validator.showErrors(result.fieldErrors);
      }
    });

  }
});
Run Code Online (Sandbox Code Playgroud)