2011-09-26 5 views
3

J'ai une fenêtre pop-up utilisant le script ZURB.org (fonctionnant parfaitement bien). Dans cette boîte de révélation j'ai un formulaire que l'utilisateur peut remplir certaines informations. Cela valide parfaitement en utilisant le plugin - présentant les beaux messages d'erreur bien alignés. Mon problème est, avec ceci a été une boîte de révélation, quand l'utilisateur clique hors de la boîte de révélation (pour sortir) les icônes de validation apparaissent toujours là jusqu'à ce que l'utilisateur les clique manuellement.Erreur de délai jQuery avec le plugin Form Validator

J'ai réussi à comprendre si elles cliquez sur l'icône « Quitter » en haut de la boîte, il les fermer au moyen de ce code:

<a class="close-reveal-modal" onclick="$('#jobForm').validationEngine('hideAll');">Exit</a> 

Comment jamais, Je veux maintenant utilisez un peu de jQuery pour automatiquement «cacher» ces messages d'erreur après, disons, 3 secondes.

Le code que j'ai à ce jour est:

<script> 
$(document).ready(function() { 
$("#job_submit").click(function() { 
$('#jobForm').validationEngine('hideAll').delay(3000); 
}); 
}); 
</script> 

job_submit est l'ID et le nom du bouton Soumettre dans le formulaire. Je suis allé un peu plus loin avec l'outil de débogage de Chromes et j'ai écrit dans la console le code suivant:

$ ('# jobForm'). ValidityIngine ('hideAll'). Delay (3000);

Lorsque les erreurs de validation de formulaire étaient présentes. Ceci est revenu avec l'erreur 'Erreur de type'.

À partir de maintenant, je ne sais pas comment résoudre cette erreur de type.

Comme toujours, merci beaucoup pour votre aide.

Mise à jour

Les classes Div ne sont pas le même nom, pour une raison quelconque, la première partie de la div est le nom du champ de formulaire itsself par exemple jdesformError parentFormjobForm formerror

Comment jamais, les 2 dernières sections semblent être cohérentes.

J'ai essayé dans la console - $ ('jdesformError parentFormjobForm formerror.) Retard (1000) .trigger (clic);.

et il est passé avec brio cependant, le champ 'erreur' n'a pas disparu quand il le fait quand je le clique physiquement, cela aurait-il quelque chose à voir avec la boîte de révélation que j'utilise?

Répondre

0

est ici une approche:

$(document).ready(function() { 
    $("#job_submit").click(function() { 
     // click all the errors at once 
     $('.formError').delay(3000).trigger('click'); 
    }); 
}); 
+0

Un grand merci pour votre réponse. Je comprends d'où vous venez, cependant, en vérifiant les classes div pour les «erreurs» eux-mêmes, ils semblent être attachés à chacun des «noms de champs de formulaire» - en tant que tel - jdesformError parentFormjobForm formError. Avec jdes été le nom du formulaire. Est-il possible de cliquer sur toutes les classes div avec 'formError' inclus? – Ben

+0

Je ne sais pas exactement ce que vous voulez dire. Mais. Dans l'exemple de code ci-dessus, j'utilise une classe générique utilisée par le plugin validateur appelé "formError". Cette classe est appliquée dans TOUS les info-bulles d'erreur, indépendamment du formulaire ou du nom d'entrée. Je pense que ça devrait marcher. De toute façon, si je manque quelque chose ici, s'il vous plaît faites le moi savoir. Heureux de vous aider. – Dave

+0

J'ai entré votre code dans la console et ça marche! - $ ('. formError'). delay (3000) .trigger ('clic'); - mais cela ne fonctionne pas entièrement car il n'est pas activé une fois le bouton cliqué?Le code du bouton est alors je ne vois pas pourquoi pas? – Ben

Questions connexes