2013-09-04 9 views
12

Ja próbuje wywołać funkcję jQuery Walidacja showErrors od wewnątrz funkcji submitHandler bez konieczności zapisywania obiektu validator tak:Get jQuery walidatora obiekt od wewnątrz funkcji submitHandler

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

Czy istnieje sposób, aby uzyskać get obiekt validator z wewnątrz metody submitHandler trochę tak:

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

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

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

     } 
    }); 

    } 
}); 

Robiąc to w ten sposób, mam nadzieję, że mogę używać tej samej metody submitHandler w multipl Miejsca w całym moim projekcie.

+0

Istnieje wiele dostępnych metod aby dostosować użycie tej wtyczki. Ale nie można użyć 'submitHandler' w dowolnym miejscu poza' .validate() '. I dlaczego musiałbyś umieścić 'showErrors' wewnątrz funkcji wywołania zwrotnego' submitHandler'? – Sparky

+0

Podaj konkretny przykład tego, co próbujesz osiągnąć, aby można go było umieścić w [jsFiddle] (http://jsfiddle.net/Y95gk/). Wtedy będę mógł powiedzieć, czy można to zrobić lepiej, używając standardowych opcji i funkcji zwrotnych. – Sparky

+1

Odnośnie edytowanego OP: To nadal nie ma sensu. [Z definicji] (http://jqueryvalidation.org/validate) funkcja wywołania zwrotnego 'submitHandler' uruchamia się tylko wtedy, gdy formularz jest" prawidłowy "... w tym miejscu należy użyć" showErrors ", gdy poprawny formularz nie będzie miał błędy? – Sparky

Odpowiedz

19

Validator obiekt jest przechowywany w elemencie formularza danych:

var validator = $.data(form, "validator"); 

Edit:

W rzeczywistości validator powinny być również przechowywane w this:

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

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

    } 
}); 
+1

Dziękujemy! Właśnie tego szukałem! –

Powiązane problemy