2009-12-04 5 views
0

J'utilise un prototype et j'ai besoin d'appeler ma fonction après une validation réussie.Prototype: fonction d'appel personnalisée après validation

Une partie du code:

var validator = new Validation(this.form); 

ce validera la forme, mais je ne sais pas comment appeler ma fonction trackForm après la validation est correcte et le formulaire est submited.

Une aide?

Répondre

1

Je voudrais avoir plus de détails pour répondre, au moins va essayer alors. Je suppose que vous utilisez PrototypeJS - la bibliothèque. Cette lib ne supporte pas la validation par défaut donc vous utilisez probablement une autre bibliothèque pour cela.

Si vous utilisez la validation de Dexagogo (http://tetlaw.id.au/view/javascript/really-easy-field-validation), vous devrez utiliser le rappel onFormValidate.

Je ne l'ai jamais utilisé, mais supposons que vous avez essentiellement configuré la validation comme normalement, avec l'ajout de cet attribut supplémentaire. Comme ceci:

var validator = new Validator(this.form, {onFormValidate: trackForm}); 
var trackForm = function (validationPassed, form) { 
    if (validationPassed) { 
    form.reset(); 
    } 
} 

Ofc vous n'avez pas besoin de créer trackForm, mais écrit comme vous l'avez mentionné à ce sujet.

Espérons que cela aide un peu.

-1

J'apprécie que la question originale ne mentionne pas la plate-forme, mais j'ai trouvé cette question après avoir largement recherché une solution sur la plate-forme Magento. Pour ceux qui utilisent Prototype via Magento et VarienForm de Magento, il existe un moyen simple de faire sans utiliser d'autres bibliothèques de validation.

Le validateur est attaché au formulaire lors de son initialisation et la méthode onFormValidate est une option sur le validateur.

Vous pouvez accéder est comme ci-dessous:

this.form.validator.options.onFormValidate = function(validationPassed, form) {}; 

Voir l'exemple ci-dessous que je l'ai testé pour mes propres moyens et trouvé cela fonctionne exactement comme prévu:

var contactForm = new VarienForm('contactForm', true); 
contactForm.validator.options.onFormValidate = function(validationPassed, form) { 
    if(validationPassed){ 
     alert("Validation Passed"); 
    } 
} 
Questions connexes