Fermer Fancybox iframe lors de la soumission du formulaire avec la balise BUTTON – ne fonctionne pas

Selon l’API Fancybox, j’utilise le code suivant dans un iframe:

... // form fields here

Le formulaire se ferme réellement lorsque vous cliquez sur “Enregistrer” – mais le contenu du formulaire n’est pas soumis. C’est comme si l’événement close était déclenché avant que le formulaire n’envoie réellement son contenu.

Sans onclick , le contenu est soumis, mais la page suivante s’ouvre dans l’iframe – pas ce que je veux.

Y a-t-il un moyen de contourner ceci?

Merci pour ton aide.

Vous pouvez utiliser la méthode event.preventDefault () comme ceci:

 
... // form fields here

Puis soumettez la page en utilisant jquery

Il sera donc préférable de le faire dans une fonction comme celle-ci:

 function closeME() { event.preventDefault(); parent.$.fancybox.close(); $('#myForm').submit(); } ... // form fields here   

 
... // form fields here

J’ai fini par résoudre ce problème en créant des boutons utilisant plusieurs span (à des fins de style) et quelques lignes de jQuery

   Save       

Celui-ci fonctionne parfaitement moi:

 $('body',top.document).removeClass('fancybox-lock'); $('.fancybox-overlay',top.document).css('display','none'); 

Toutes les autres choses n’ont pas fonctionné.

pour les autres lecteurs ayant toujours du mal à fermer fancybox à partir d’un iframe, il peut s’agir d’un problème, car iframe provient d’une origine différente de celle de la fenêtre parente. c’était le problème que je rencontrais. Rob W a fourni une excellente solution en utilisant postMessage ici. Uncaught TypeError: Impossible de lire la propriété ‘fancybox’ de non définie – une erreur Google Chrome uniquement?