web-dev-qa-db-fra.com

Comment fermer la boîte de dialogue jQuery dans la boîte de dialogue?

Comment fermer la boîte de dialogue jQuery dans la boîte de dialogue sans utiliser le bouton de fermeture?

Dans la boîte de dialogue ui se trouve une simple demande de formulaire et si une soumission réussie se produit, elle se ferme automatiquement et actualise la page parent.

    <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

60
imperialx

Essaye ça

$(this).closest('.ui-dialog-content').dialog('close'); 

Cela fermera la boîte de dialogue à l'intérieur.

64
Kunal

vous pouvez le fermer par programme en appelant 

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

quand tu veux.

59
Jason

Vous avez besoin

$('selector').dialog('close');
15
redsquare

Fermer depuis iframe dans une boîte de dialogue:

window.parent.$('.ui-dialog-content:visible').dialog('close');
8
Der_Meister
$(this).parents(".ui-dialog-content").dialog('close')

Simple, j'aime m'assurer de ne pas:

  1. valeurs de dialogue hardcode #id. 
  2. Fermez toutes les boîtes de dialogue.
7
ndrix

Après avoir vérifié toutes les réponses ci-dessus sans succès, le code suivant m'a permis de résoudre le problème:

$(".ui-dialog").dialog("close");

Peut-être que ce sera aussi un bon essai si vous cherchez des alternatives.

4
Marco

remplacer une chaîne à

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

$ (ceci) signifie ici un autre objet $ ("# 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
Bart

        $(document).ready(function () {
            $("#form-dialog").dialog({
                autoOpen: true,
                modal: true,
                width: 200,
                draggable: true,
                resizable: true,
                buttons: {
                    "Close": function () {
                        $("#idDialog").dialog("close");
                    }
                }
            });
        });

Cela vous fera un bouton pour fermer. vous pouvez aussi appeler la fonction close 

$("#idDialog").dialog("close");

dans certaines fonctions pour faire cela. ou même dans un bouton/a

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

EDIT: Vous en avez besoin pour inclure votre dialogue dans la forme:

open: function (type, data) {
            $(this).parent().appendTo($("form:first"));
        }
0
Michel Ayres

Ajout de ce lien à l'air libre 

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

marche parfaitement.

0
Shan

meilleure façon est "détruire et supprimer" au lieu de "fermer" il supprimera le "html" de la boîte de dialogue du DOM

$(this).closest('.ui-dialog-content').dialog('destroy').remove();