2011-01-12 7 views
3

iFrameを含むjQueryモーダルダイアログがあります。iframeにはフォームが含まれています。ユーザーがフォームを送信すると、モーダルダイアログを閉じます。jQuery iframeモダルクローズフォームsubmit

どうすればいいですか? index.phpの上

jqueryのモーダルスクリプト:showRegDialogモーダルを呼び出すためのindex.phpに

<script type="text/javascript"> 
function showRegDialog(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> 

がリンク:

<a href="javascript:showRegDialog('/register.php');">Register now</a> 

これはregister.php

<html> 
<body> 
<form action="" method="POST"> 
<input type="text"> 
<input type="submit"> 
</form> 
</body> 
</html> 
の内容です

答えて

4

コールjavascript関数:

parent.yourJsFunction(); 

は、フォームの "onSubmit検証" にそれを置きます。

+0

これは動作します!ありがとう! –

+0

ちょうど何かに気付きました。私がダイアログを2度開いてフォームを送信しようとすると、それを閉じません。何らかの理由で初めて初めて動作します... –

+0

私の質問にお応えできますか? –

1

お探しの場合がありますclose

フォームにIDを指定します。このような親ウィンドウ内

$("#formID").submit(function(){ 
    parent.closeModal(); 
}); 

// function for closing modal window (in parent page) 
function closeModal() { 
    $("#externalSite").dialog("close"); 
} 
+0

しかし、フォームを送信した後でそのコマンドを起動する必要があり、フォームがiframeの内側にあるため、ソリューションを実装するにはどうすればよいですか?ありがとう –

+0

私の更新された答えを見てください。 – rahul

+0

何らかの理由で動作しません。これを参照してください:http://pastebin.com/npaBAt6aフォームを送信すると、ダイアログが閉じません。フォームを提出するだけです.. –