2010-05-29 147 views
54

¿Cómo cerrar jQuery Dialog dentro del cuadro de diálogo sin usar el botón de cerrar?¿Cómo cerrar jQuery Dialog en el cuadro de diálogo?

Dentro del cuadro de diálogo de la interfaz de usuario es simplemente una solicitud de formulario y si se produce una presentación correcta, el cuadro de diálogo de la interfaz de usuario se cierra automáticamente y actualiza la página principal.

<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

Respuesta

51

se puede cerrar mediante programación llamando

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

siempre que lo desee.

+0

Pero la etiqueta del formulario está dentro del diálogo ui. No hay archivos jquery dentro del diálogo de la interfaz de usuario, solo un envío de etiqueta de formulario simple. ¿Cómo puedo usar $ ('# form-dialog'). Close() dentro del # form-dialog? Es como cerrarse después de hacer clic en algo o un temporizador de espera se produce dentro del cuadro de diálogo ui. – imperialx

+0

si está utilizando jquery para abrir el cuadro de diálogo, puede usar jquery para cerrarlo. en la línea justo debajo de donde declaras el diálogo, establece '$ ('# mySubmitButton'). live ('click', function() {mySubmitFunction(); $ ('# form-dialog'). close();}); ' – Jason

+0

Sí, pero ¿qué tal cuando estoy dentro del diálogo? Creo que el equivalente de esto es algo como $ (window) .unload() donde el formulario emergente se cierra automáticamente en vez de hacer clic en el botón de cierre de jquery-ui-dialog. – imperialx

14

Usted necesita

$('selector').dialog('close'); 
+0

Hola redsquare, he agregado algunas líneas en mi código anterior, ¿puedo saber por qué no cerrará el cuadro de diálogo? Como puede ver, el botón de cerrar está dentro del diálogo de ui. Gracias. – imperialx

+0

porque en su caso esto se refiere al botón no al diálogo – redsquare

+0

cambiar $ (esto) a $ ("# formulario-diálogo") – redsquare

0

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

Esto le hará un botón para cerrar. también puede llamar a la función cerrar

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

en alguna función para hacer esto. o incluso en un botón/a EDITAR

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

: Esto es necesario para incluir su diálogo en la forma:

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

Trate Esta

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

Se cerrará el cuadro de diálogo dentro de eso.

+1

excelente. exactamente lo que quería! – Somedeveloper

2

reemplazar una cadena de

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

$ (this) aquí significa otro objeto $ ("# 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> 
6
$(this).parents(".ui-dialog-content").dialog('close') 

sencilla, me gusta para asegurarse de que yo no' t:

  1. hardcode dialog #id values.
  2. Cierre todos los cuadros de diálogo.
0

La adición de este eslabón de la

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

funciona perfectamente.

6

Cerca del marco flotante dentro de un diálogo:

window.parent.$('.ui-dialog-content:visible').dialog('close'); 
3

Después de comprobar todas estas respuestas anteriormente, sin suerte, el código folling trabajó para mí para resolver el problema:

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

Tal vez este sea también es un buen intento si buscas alternativas.

Cuestiones relacionadas