Estoy usando la ventana emergente modal de twitter bootstrap.
<div id="myModal" class="modal hide fade in">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Header</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<input type="submit" class="btn btn-success" value="Save"/>
</div>
</div>
Puedo cargar contenido usando ajax con este elemento a:
<a data-toggle="modal" data-target="#myModal" href="edit.aspx">Open modal</a>
Ahora tengo que abrir el mismo modal pero usando una URL diferente. Estoy usando este modal para editar una entidad de mi base de datos. Entonces, cuando hago clic en editar en una entidad, necesito cargar el modal con una ID.
<a data-toggle="modal" data-target="#myModal" href="edit.aspx?id=1">Open modal</a>
<a data-toggle="modal" data-target="#myModal" href="edit.aspx?id=2">Open modal</a>
<a data-toggle="modal" data-target="#myModal" href="edit.aspx?id=3">Open modal</a>
Si hago clic en el enlace número 1, funciona bien. Pero si hago clic en el enlace número 2, el contenido modal ya está cargado y, por lo tanto, mostrará el contenido del enlace número 1.
¿Cómo puedo actualizar o restablecer el contenido cargado ajax en una ventana emergente modal de arranque de Twitter?
javascript
twitter-bootstrap
stian.net
fuente
fuente
Respuestas:
Estoy teniendo el mismo problema, y supongo que la forma de hacerlo será eliminar el atributo de alternancia de datos y tener un controlador personalizado para los enlaces.
Algo en las líneas de:
Lo intentaré más tarde y publicaré comentarios.
fuente
Para descargar los datos cuando el modal está cerrado, puede usar esto con Bootstrap 2.x:
Y en Bootstrap 3 ( https://github.com/twbs/bootstrap/pull/7935#issuecomment-18513516 ):
fuente
Puede forzar a Modal a actualizar la ventana emergente agregando esta línea al final del método hide del complemento Modal (si está usando bootstrap-transition.js v2.1.1, debería estar en la línea 836)
O con un oyente de eventos
fuente
load()
llamada fuera del constructor a lashow()
, o agregar un método al complemento para activar manualmente una recarga deremote
. En la segunda sugerencia, solo proporcioné eso como respuesta a una pregunta que pedía explícitamente no hacerlo de la manera que sugirió @markz .Con Bootstrap 3 puede usar el controlador de eventos 'hidden.bs.modal' para eliminar cualquier dato relacionado con el modo, lo que obliga a que la ventana emergente se vuelva a cargar la próxima vez:
fuente
Basado en otras respuestas (gracias a todos).
Necesitaba ajustar el código para que funcionara, ya que simplemente llamar a .html borraba todo el contenido y el modal no se cargaba con ningún contenido después de hacerlo. Así que simplemente busqué el área de contenido del modal y apliqué el restablecimiento del HTML allí.
Todavía puede ir con la respuesta aceptada, ya que estoy obteniendo un salto feo justo antes de las cargas modales, ya que el control es con Bootstrap.
fuente
Un poco más comprimido que el ejemplo aceptado anteriormente. Agarra el objetivo del objetivo de datos del actual clic en cualquier cosa con data-toggle = modal activado. Esto hace que no tenga que saber cuál es la identificación del modal de destino, ¡simplemente reutilice el mismo! menos código = ganar! También puede modificar esto para cargar títulos, etiquetas y botones para su modal si lo desea.
Enlaces de ejemplo:
fuente
Hice un pequeño cambio en la respuesta de Softlion , por lo que todos mis modales no se actualizarán en hide. Los modales con el atributo data-refresh = 'true' solo se actualizan, otros funcionan como de costumbre. Aquí está la versión modificada.
Ahora use el atributo como se muestra a continuación,
Esto asegurará que solo se actualicen los modales con data-refresh = 'true'. Y también estoy restableciendo el html modal porque los valores antiguos se muestran hasta que se cargan los nuevos, lo que hace que el html vacío corrija ese.
fuente
Aquí hay una versión de coffeescript que me funcionó.
fuente
Funcionará para todas las versiones de twitterbootstrap
Código Javascript:
enlaces a modal son
emergente modal
fuente
También me quedé atrapado en este problema, luego vi que los identificadores del modal son los mismos. Necesita diferentes identificadores de modales si desea múltiples modales. Usé identificación dinámica . Aquí está mi código en
haml
:Puedes hacerlo
y tus enlaces a modal serán
Espero que esto funcione para tí.
fuente
Puedes probar esto:
fuente
Quería eliminar el contenido cargado de AJAX cuando se cerró el modal, así que ajusté la línea sugerida por otros (sintaxis de coffeescript):
fuente
var $ tabla = $ ('# myTable2');
$ table.bootstrapTable ('destruir');
Trabajó para mi
fuente
paso 1: crea un contenedor para el modal llamado
clone-modal-wrapper
.paso 2: crea un div en blanco llamado
modal-wrapper
.Paso 3: Copie el elemento modal de
clone-modal-wrapper
amodal-wrapper
.paso 4: Alternar el modal de
modal-wrapper
.fuente