Como fechar a janela de jQuery dentro da janela?

Como fechar a janela do jQuery dentro da janela sem usar o botão Fechar?

dentro da janela ui existe um simples pedido de formulário e, se ocorrer um envio bem sucedido, então a janela ui fecha automaticamente e actualiza a página pai.

    <script type="text/javascript">
        $(document).ready(function () {
            $("#form-dialog").dialog({
                autoOpen: true,
                modal: true,
                width: 200,
                draggable: true,
                resizable: true
            });
        });
    </script>


    <div id="form-dialog" title="Form Submit">
    <form action="default.aspx" method="post">
    <input type="text" name="name" value=" " />    
    <input type="submit" value="submit" />

    <a href="#" id="btnDone">CLOSE</a>

    <script type="text/javascript">
    $(document).ready(function () {
        $("#btnDone").click(function () {
            $(this).dialog('close');
        });
    });
    </script>

    </form>
    </div>

-imperialx

Author: Juho Vepsäläinen, 2010-05-29

9 answers

Tenta Isto

$(this).closest('.ui-dialog-content').dialog('close'); 
Vai fechar o diálogo dentro dele.
 63
Author: Kunal, 2011-12-03 04:22:03
Pode fechá-lo programaticamente chamando-o de ...
$('#form-dialog').dialog('close')

Quando quiseres.

 53
Author: Jason, 2010-05-29 16:34:45

Tu precisas

$('selector').dialog('close');
 14
Author: redsquare, 2013-09-30 09:35:07

Fechar a partir do iframe dentro de uma janela:

window.parent.$('.ui-dialog-content:visible').dialog('close');
 7
Author: Der_Meister, 2014-07-23 09:48:28
$(this).parents(".ui-dialog-content").dialog('close')

Simples, eu gosto de me certificar que não:

  1. Janela de código rígido # valores de id.
  2. fechar todas as janelas.
 6
Author: ndrix, 2013-09-30 09:33:42

Depois de verificar todas estas respostas acima sem sorte, o código de following funcionou para mim para resolver o problema:

$(".ui-dialog").dialog("close");
Talvez esta também seja uma boa tentativa se procurares alternativas.
 3
Author: Marco, 2017-02-07 14:38:31

Substituir um texto para

$("#form-dialog").dialog('close');

$(isto) aqui significa outro objecto $("#btnDone")

 <script type="text/javascript">
    $(document).ready(function () {
        $("#form-dialog").dialog({
            autoOpen: true,
            modal: true,
            width: 200,
            draggable: true,
            resizable: true
        });
    });
</script>


<div id="form-dialog" title="Form Submit">
<form action="default.aspx" method="post">
<input type="text" name="name" value=" " />    
<input type="submit" value="submit" />

<a href="#" id="btnDone">CLOSE</a>

<script type="text/javascript">
$(document).ready(function () {
    $("#btnDone").click(function () {
 //I've replaced next string
 // $(this) here means another object $("#btnDone")
  $("#form-dialog").dialog('close');
    });
});
</script>

</form>
</div>
 2
Author: Bart, 2011-12-07 18:06:37

Adicionar esta ligação ao open

$(this).parent().appendTo($("form:first"));

Funciona perfeitamente.

 0
Author: Shan, 2013-09-30 09:33:19

        $(document).ready(function () {
            $("#form-dialog").dialog({
                autoOpen: true,
                modal: true,
                width: 200,
                draggable: true,
                resizable: true,
                buttons: {
                    "Close": function () {
                        $("#idDialog").dialog("close");
                    }
                }
            });
        });
Isto vai fazer de ti um botão para fechar. você também pode chamar a função de Fecho
$("#idDialog").dialog("close");

Em alguma função para fazer isto. ou mesmo num botão / a

< a href="javascript:void(0);" id="btnDone"   
                              onClick="$("#idDialog").dialog("close");">CLOSE</a>

Editar: precisa disto para incluir a sua janela no formulário:

open: function (type, data) {
            $(this).parent().appendTo($("form:first"));
        }
 0
Author: Michel Ayres, 2013-09-30 09:34:53