2011-01-09 7 views
1

Ich habe einen modalen jQuery-Dialog, der eine andere Seite auf einem iframe lädt.Wie kann ich einen jQuery Modal-Dialog mit einem iframe in ihm schließen?

Die iframed-Seite enthält ein Formular, und ich versuche, das modale Dialogfeld von jQuery automatisch zu schließen, nachdem der Benutzer das Formular abgeschickt hat.

Ist das überhaupt möglich?

Danke,

LoadModal Code (auf first.html):

<script type="text/javascript"> 
function showModal(url) { 
$(function() { 


var $this = $(this); 
var horizontalPadding = 30; 
var verticalPadding = 30; 
$('<iframe id="externalSite" scrolling="no" frameborder="0" class="externalSite" src="' + url + '" />').dialog({ 
title: ($this.attr('title')) ? $this.attr('title') : 'Choose your location', 
autoOpen: true, 
width: 700, 
height: 700, 
modal: true, 
resizable: true, 
autoResize: true, 
overlay: { 
    opacity: 0.5, 
    background: "black" 
} 

}).width(700 - horizontalPadding).height(700 - verticalPadding);    

}); 
} 
</script> 
<button onclick="showModal('/iframe.html');">Add</button> 

iframe-Code (iframe.html)

<html> 
<body> 
<form action="" method="POST"> 
<input type="text" name="test"> 
<input type="submit"> 
</body> 
</html> 

nach iframe Formular abgeschickt wird, würde Ich mag an Schließen Sie den Dialog, der mit der Funktion justest.jQuery geöffnet wurde.

Antwort

3

wenn das bedeutet, dass Sie den Dialog aus dem Inneren des iframe schließen möchten, können Sie etwas wie das

parent.$('#your-dialog-id').dialog('close'); 

wenn nötig versuchen könnte ich später ein komplettes Beispiel bieten kann ...

+0

Hey römisch, das hervorragend klingt. Aber der Code, den ich benutze, erstellt das div automatisch, also weiß ich nicht, was die ID ist (Ich habe meine Frage bearbeitet, um meinen Code einzuschließen). Wie wende ich meinen Code an meinen an? danke –

+0

könntest du natürlich deine dialogvariable verwenden ... – roman

+0

Wie mache ich das? Sorry, ich bin mir nicht sicher, was du meinst .. –

0

Können Sie ein Beispiel oder einen Quellcode senden?

Wenn Sie nicht können, versuchen Sie einen achor mit target = "" attr.

+0

Ich habe meine Frage bearbeitet, um den Quellcode einzuschließen. Der Iframe, der geladen wird, hat eine Form (form action = ""). Sobald es eingereicht wurde, möchte ich den modalen Dialog schließen. Wie kann ich es tun? –

+0

Gibt es irgendeine hideModal() Funktion für dieses Plugin? – Eray

+0

und können Sie HTML-Codes auch teilen – Eray

1

Ich habe eine andere Lösung (die akzeptierte man nicht in meinem Fall arbeiten):

parent.$('.ui-dialog-titlebar-close').click(); 
Verwandte Themen