Я использую модальное всплывающее окно 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>
Я могу загружать контент с помощью ajax с этим a-элементом:
<a data-toggle="modal" data-target="#myModal" href="edit.aspx">Open modal</a>
Теперь мне нужно открыть тот же модальный файл, но с другим URL-адресом. Я использую это модальное окно для редактирования объекта из моей базы данных. Поэтому, когда я нажимаю кнопку редактирования объекта, мне нужно загрузить модальное окно с идентификатором.
<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>
Если я нажму на ссылку номер 1, все будет нормально. Но если я затем нажму на ссылку номер 2, модальный контент уже загружен, и поэтому он покажет контент из ссылки номер 1.
Как я могу обновить или сбросить загруженный контент ajax в модальном всплывающем окне загрузки twitter?
javascript
twitter-bootstrap
stian.net
источник
источник
Ответы:
У меня та же проблема, и я предполагаю, что для этого нужно удалить атрибут переключения данных и создать собственный обработчик для ссылок.
Что-то в строках:
Попробую позже и оставлю комментарии.
источник
Чтобы выгрузить данные, когда модальное окно закрыто, вы можете использовать это с Bootstrap 2.x:
И в Bootstrap 3 ( https://github.com/twbs/bootstrap/pull/7935#issuecomment-18513516 ):
источник
Вы можете заставить Modal обновить всплывающее окно, добавив эту строку в конец метода скрытия модуля Modal (если вы используете bootstrap-transition.js v2.1.1, она должна быть в строке 836)
Или со слушателем событий
источник
load()
вызов из конструктора в конструкторshow()
, либо добавить в плагин метод для ручного запуска перезагрузкиremote
. Что касается второго предложения, я предоставил это только как ответ на вопрос, в котором прямо просил не делать этого так, как предлагал @markz .С Bootstrap 3 вы можете использовать обработчик событий hidden.bs.modal для удаления любых модальных данных, заставляя всплывающее окно перезагружаться в следующий раз:
источник
На основании других ответов (всем спасибо).
Мне нужно было настроить код для работы, так как простой вызов .html стирает весь контент, и модальное окно не загружается с каким-либо контентом после того, как я это сделал. Поэтому я просто поискал область содержимого модального окна и применил сброс HTML там.
Тем не менее, я могу согласиться с принятым ответом, так как я получаю некрасивый прыжок непосредственно перед загрузкой модального окна, поскольку элемент управления с помощью Bootstrap.
источник
Немного более сжатый, чем в приведенном выше примере. Захватывает цель из цели данных текущего объекта, по которому щелкнули мышью, с включенным data-toggle = modal. Это делает так, что вам не нужно знать, что такое идентификатор целевого модального окна, просто используйте тот же самый! меньше кода = выигрыш! Вы также можете изменить это, чтобы загрузить заголовок, метки и кнопки для вашего модального окна, если хотите.
Примеры ссылок:
источник
Я внес небольшое изменение в ответ Softlion , поэтому все мои модальные окна не обновляются при скрытии . Модальные окна с атрибутом data-refresh = 'true' только обновляются, остальные работают как обычно. Вот модифицированная версия.
Теперь используйте атрибут, как показано ниже,
Это обеспечит обновление только модальных окон с data-refresh = 'true'. И я также сбрасываю модальный html, потому что старые значения отображаются до тех пор, пока не будут загружены новые, что делает пустым html исправляет это.
источник
Вот версия coffeescript, которая у меня сработала.
источник
Он будет работать для всех версий twitterbootstrap
Код Javascript:
ссылки на модальные
всплывающее модальное окно
источник
Я тоже застрял в этой проблеме, когда увидел, что идентификаторы модального окна такие же. Если вам нужно несколько модальных окон, вам нужны разные идентификаторы модальных окон. Я использовал динамический идентификатор . Вот мой код
haml
:ты можешь сделать это
и ваши ссылки на модальные будут
Я надеюсь, это сработает для вас.
источник
Вы можете попробовать это:
источник
Я хотел, чтобы загруженный контент AJAX был удален при закрытии модального окна, поэтому я скорректировал строку, предложенную другими (синтаксис coffeescript):
источник
var $ table = $ ('# myTable2');
$ table.bootstrapTable ('уничтожить');
Работал на меня
источник
шаг 1: Создайте оболочку для вызываемого модального окна
clone-modal-wrapper
.Шаг 2: Создайте пустой div с именем
modal-wrapper
.Шаг 3: Скопируйте модальный элемент из
clone-modal-wrapper
вmodal-wrapper
.шаг 4: переключить модальное окно
modal-wrapper
.источник