2013-09-04 10 views
12

Sto tentando di chiamare la funzione jQuery convalida showErrors dall'interno della funzione submitHandler senza dover salvare l'oggetto validatore in questo modo:Get jQuery oggetto validatore dall'interno della funzione di submitHandler

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

C'è un modo per ottenere l'ottenere l'oggetto validatore dall'interno del metodo submitHandler un po 'come questo:

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

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

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

     } 
    }); 

    } 
}); 

facendo in questo modo, la mia speranza è che posso usare lo stesso metodo submitHandler in multipl e luoghi in tutto il mio progetto.

+0

Ci sono molti metodi disponibili per personalizzare l'uso di questo plugin. Ma non è possibile usare 'submitHandler' ovunque al di fuori di' .validate() '. E perché dovresti inserire 'showErrors' all'interno della funzione di callback' submitHandler'? – Sparky

+0

Fornisci un esempio concreto di ciò che stai cercando di ottenere in modo che possa essere inserito in [jsFiddle] (http://jsfiddle.net/Y95gk/). Quindi sarò in grado di dirti se può essere fatto meglio usando le opzioni standard e le funzioni di callback. – Sparky

+1

Riguardo all'OP modificato: questo non ha ancora senso. [Per definizione] (http://jqueryvalidation.org/validate), la funzione di callback 'submitHandler' si attiva solo quando il modulo è" valido "... a cosa serve' showErrors' a questo punto quando un modulo valido non avrà errori? – Sparky

risposta

19

oggetto validatore è memorizzato nei dati di elemento forma:

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

Edit:

Infatti validatore devono essere conservati anche in this:

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

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

    } 
}); 
+1

Grazie! Questo e 'esattamente quello che stavo cercando! –

Problemi correlati