2011-01-12 4 views
3

У меня есть диалог jQuery Modal с iframe в нем, iframe включает в себя форму. Когда пользователь отправляет форму, я хотел бы закрыть модальный диалог.jQuery iframe modal close on form submit

Как я могу это сделать?

JQuery модальное скрипт на 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> 

ссылку на index.php, чтобы позвонить showRegDialog модальность:

<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

Только что-то заметил, если я попробую открыть диалог во второй раз и отправить форму, он не закрывает его. Только работает в первый раз по какой-то причине ... –

+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, когда я отправляю форму, она не закрывает диалог. просто отправляет форму. –