J'utilise le popup 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>
Je peux charger du contenu en utilisant ajax avec cet élément a:
<a data-toggle="modal" data-target="#myModal" href="edit.aspx">Open modal</a>
Maintenant, je dois ouvrir le même modal mais en utilisant une URL différente. J'utilise ce modal pour modifier une entité de ma base de données. Ainsi, lorsque je clique sur modifier sur une entité, je dois charger le modal avec un identifiant.
<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 je clique sur le lien numéro 1, cela fonctionne bien. Mais si je clique ensuite sur le lien numéro 2, le contenu modal est déjà chargé et il affichera donc le contenu du lien numéro 1.
Comment puis-je actualiser ou réinitialiser le contenu chargé ajax dans une fenêtre contextuelle modale d'amorçage Twitter?
javascript
twitter-bootstrap
stian.net
la source
la source
Réponses:
J'ai le même problème, et je suppose que la façon de le faire sera de supprimer l'attribut data-toggle et d'avoir un gestionnaire personnalisé pour les liens.
Quelque chose dans les lignes de:
Je vais l'essayer plus tard et publier des commentaires.
la source
Pour décharger les données lorsque le modal est fermé, vous pouvez l'utiliser avec Bootstrap 2.x:
Et dans Bootstrap 3 ( https://github.com/twbs/bootstrap/pull/7935#issuecomment-18513516 ):
la source
Vous pouvez forcer Modal à actualiser la popup en ajoutant cette ligne à la fin de la méthode hide du plugin Modal (si vous utilisez bootstrap-transition.js v2.1.1, cela devrait être à la ligne 836)
Ou avec un auditeur d'événement
la source
load()
appel hors du constructeur et dans leshow()
, soit d'ajouter une méthode au plugin pour déclencher manuellement un rechargement deremote
. Sur la deuxième suggestion, je n'ai fourni cela que comme réponse à une question qui demandait explicitement de ne pas le faire de la manière suggérée par @markz .Avec Bootstrap 3, vous pouvez utiliser le gestionnaire d'événements 'hidden.bs.modal' pour supprimer toutes les données liées au modal, forçant la fenêtre contextuelle à se recharger la prochaine fois:
la source
Basé sur d'autres réponses (merci à tous).
J'avais besoin d'ajuster le code pour qu'il fonctionne, car le simple fait d'appeler .html effaçait tout le contenu et le modal ne se chargerait d'aucun contenu après l'avoir fait. J'ai donc simplement cherché la zone de contenu du modal et y ai appliqué la réinitialisation du HTML.
Peut-être encore aller avec la réponse acceptée car je reçois un saut laid juste avant les charges modales car le contrôle est avec Bootstrap.
la source
Un peu plus compressé que l'exemple accepté ci-dessus. Attrape la cible de la cible de données de l'actuel cliqué sur n'importe quoi avec data-toggle = modal activé. Ainsi, vous n'avez pas besoin de savoir quel est l'identifiant du modal cible, réutilisez simplement le même! moins de code = gagner! Vous pouvez également le modifier pour charger le titre, les étiquettes et les boutons de votre modal si vous le souhaitez.
Exemples de liens:
la source
J'ai apporté une petite modification à la réponse Softlion , donc tous mes modaux ne s'actualiseront pas. Les modaux avec l'attribut data-refresh = 'true' sont uniquement actualisés, les autres fonctionnent comme d'habitude. Voici la version modifiée.
Maintenant, utilisez l'attribut comme indiqué ci-dessous,
Cela garantira que seuls les modaux avec data-refresh = 'true' sont actualisés. Et je réinitialise également le html modal parce que les anciennes valeurs sont affichées jusqu'à ce que de nouvelles soient chargées, ce qui rend le html vide corrige celui-là.
la source
Voici une version coffeescript qui a fonctionné pour moi.
la source
Cela fonctionnera pour toutes les versions de twitterbootstrap
Code Javascript:
les liens vers modal sont
pop up modal
la source
J'étais aussi coincé sur ce problème puis j'ai vu que les identifiants du modal sont les mêmes. Vous avez besoin de différents identifiants de modaux si vous voulez plusieurs modaux. J'ai utilisé un identifiant dynamique . Voici mon code en
haml
:tu peux le faire
et vos liens vers modal seront
J'espère que cela fonctionnera pour vous.
la source
Vous pouvez essayer ceci:
la source
Je voulais que le contenu chargé AJAX soit supprimé lors de la fermeture du modal, j'ai donc ajusté la ligne suggérée par d'autres (syntaxe coffeescript):
la source
var $ table = $ ('# maTable2');
$ table.bootstrapTable ('détruire');
A travaillé pour moi
la source
étape 1: créer un wrapper pour le modal appelé
clone-modal-wrapper
.étape 2: Créez un div vide appelé
modal-wrapper
.Étape 3: Copiez l'élément modal de
clone-modal-wrapper
versmodal-wrapper
.Étape 4: Basculez le modal de
modal-wrapper
.la source