Selon l’API Fancybox, j’utilise le code suivant dans un iframe:
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:
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
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
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?