Как программно запустить модал Bootstrap?

177

Если я пойду сюда

http://getbootstrap.com/2.3.2/javascript.html#modals

И нажмите "Запустить демо-мода", он делает ожидаемую вещь. Я использую modal как часть моего процесса регистрации, и есть проверка на стороне сервера. Если есть проблемы, я хочу перенаправить пользователя к тому же модалю с отображаемыми сообщениями о проверке. На данный момент я не могу понять, как получить модальный дисплей, кроме физического щелчка пользователя. Как я могу запустить модель программно?

7 ответов

289
Лучший ответ

Чтобы вручную показать модальное всплывающее окно, вы должны сделать это

$('#myModal').modal('show');

Ранее вам нужно было инициализировать его с помощью show: false чтобы он не отображался, пока вы не сделаете это вручную.

$('#myModal').modal({ show: false})

Где myModal - это идентификатор модального контейнера.

  • 0
    Благодарю. Это сработало. Однако одно наблюдение заключается в том, что, когда я открываю модальное окно, он сбрасывает прокрутку, и если я запускаю модальное поле снизу страницы, страница прокручивается вверх. Как мне это остановить?
  • 0
    @tdubs: странно, это должно работать. Смотрите последний модальный код github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js . Пока я вижу, это должно все еще работать
Показать ещё 7 комментариев
42

Вы должны написать data-toggle = "modal" в элементе, который вызвал модальный (например, кнопку), и вы вручную можете показать модальный:

$('#myModal').modal('show');

и скрыть:

$('#myModal').modal('hide');
  • 0
    У меня есть URL, который открывает модал с переключателем данных. Затем внутри модального окна у меня есть кнопка, которая вызывает функцию, и последнее, что она делает, - закрывает модальное окно, используя предложенный вами метод скрытия. Большой!
  • 0
    upvoted! как это сделать в чистом JS
15

Если вы ищете программное модальное создание, вам может понравиться следующее:

http://nakupanda.github.io/bootstrap3-dialog/

Несмотря на то, что Bootstrap modal предоставляет javascript для модального создания, вам все равно нужно сначала написать модальные html-разметки.

9

HTML

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

JS

$('button').click(function(){
$('#myModal').modal('show');
});

DEMO JSFIDDLE

6

вы можете показать модель через jquery (javascript)

$('#yourModalID').modal({
  show: true
})

Демо: здесь

или вы можете просто удалить класс "Скрыть"

<div class="modal" id="yourModalID">
  # modal content
</div>

1

Я хотел сделать это angular (2/4), вот что я сделал:

<div [class.show]="visible" [class.in]="visible" class="modal fade" id="confirm-dialog-modal" role="dialog">
..
</div>`

Важные вещи для note:

  • visible - переменная (логическая) в компоненте, которая управляет модальной видимостью.
  • show и in - это классы начальной загрузки.
-1

Следующий код полезен для открытия модальной функции openModal() и закрытия для closeModal():

      function openModal() {
          $(document).ready(function(){
             $("#myModal").modal();
          });
      }

     function closeModal () {
          $(document).ready(function(){
             $("#myModal").modal('hide');
          });  
      }

/* #myModal - это идентификатор модального всплывающего окна */

  • 0
    Пожалуйста, объясните, что делает код при публикации ответов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню