2011-11-24 6 views
1

J'essaie de faire apparaître une fenêtre modale après une série de FI. Disons que j'ai un formulaire, je prends les entrées, les traite (dans une autre page) et, si tout se passe bien, la fenêtre modale apparaît et dit 'Merci de vous inscrire!'. Donc ce que je travaille avec est jusqu'à présentComment ouvrir une fenêtre modale

$(document).ready(function() { 
$('a[name=modal]').click(function(e) { ... 

à triger que je peux utiliser

<a href="#dialog" name="modal">lalala</a> 

<div id="boxes"> 
<div id="dialog" class="window"> 
Simple Modal Window |<a href="#" class="close"/> Close</a> 
</div> 

Cependant, je ne veux pas avoir à cliquer sur un lien pour ouvrir la fenêtre modale, mais après un IF est valide. Alors essayé de le faire:

$(document).ready(function() { 
$('div[id=modal]').click(function(e) { ... 

et modifié le code html:

<div id="modal" href="#dialog">lalala 

<div id="boxes"> 
<div id="dialog" class="window"> 
Simple Modal Window | 
<a href="#" class="close"/> Seguir</a> 
</div> 
</div> 

</div> 

(Vérifiable à http://pasionesargentas.webatu.com/test4.php) mais a fini au même endroit (avoir à cliquer dans lalala). Rien n'est arrivé Si je change .click pour .bind o .trigger. Des idées?

+0

Peut-être qu'au lieu d'affecter le gestionnaire de clic au lien que vous voulez capturer une variable dans la page, le modal devrait apparaître. Cette variable peut être une chaîne de requête avec confirmation du traitement des données du formulaire précédent ou même d'un champ masqué. Ensuite, vous capturez la variable et * puis * vous exécutez la logique pour ouvrir la fenêtre contextuelle. – MilkyWayJoe

+0

Eh bien, je n'y ai pas pensé de cette façon. Je suis assez nouveau dans JS/jQuery donc je dois creuser plus profondément dans cela. Merci! – cbarg

Répondre

1

Vous pouvez laisser le code tel quel et ajouter un .trigger de $() pour simuler un événement de clic sans avoir à cliquer en fait la div comme ceci:

$(document).ready(function(){ 
    $('#modal').click(function(e){ 
     ... 
    }); 
    $('#modal').trigger('click'); 
}); 

Cependant, comme Thiago mentionné ci-dessus, vous devriez Pensez à utiliser une chaîne de requête ou un champ caché quelconque pour indiquer si le formulaire a été correctement traité sur la page précédente.

+0

Je pense que je n'étais pas clair sur mon explication. Je envoie essentiellement un email avec un lien, donc l'utilisateur ouvre cette page (avec un hachage) et il est capable d'ajouter un mot de passe pour le compte pour la toute première fois. Après avoir rempli ce formulaire et l'avoir soumis, je m'assure que la nouvelle passe est assez longue, les deux passes sont égales, etc. (tout est vérifié sur la même page). Si tout se passe bien, je procède à l'enregistrer dans la base de données (également sur la même page) et je veux que la fenêtre apparaisse. – cbarg

+0

@cbarg Avez-vous une fonction qui se déclenche lorsque le mot de passe est enregistré? Économisez-vous grâce à AJAX? – dSquared

+0

non, avec php et sql – cbarg

Questions connexes