9

Как открыть модальное окно Bootstrap с помощью jQuery?

13

Описание проблемы:

Я использую функциональность модальных окон от Twitter Bootstrap. Когда пользователь нажимает кнопку "Отправить" на моей форме, я хочу, чтобы модальное окно отображалось именно в момент нажатия этой кнопки.

Вот мой код формы:

<form id="myform" class="form-wizard">
    <h2 class="form-wizard-heading">BootStap Wizard Form</h2>
    <input type="text" value=""/>
    <input type="submit"/>
</form>

<!-- Модальное окно -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">Заголовок модального окна</h3>
    </div>
    <div class="modal-body">
        <p>Текст модального окна...</p>
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Закрыть</button>
        <button class="btn btn-primary">Сохранить изменения</button>
    </div>
</div>

И вот код на jQuery, который я использую:

$('#myform').on('submit', function(ev) {
    $('#my-modal').modal({
        show: 'false'
    }); 

    var data = $(this).serializeObject();
    json_data = JSON.stringify(data);
    $("#results").text(json_data); 
    $(".modal-body").text(json_data); 

    ev.preventDefault();
});

Проблема: Модальное окно не отображается при отправке формы. Я хотел бы, чтобы модальное окно открывалось, и в нем отображались данные формы сразу после нажатия кнопки "Отправить". Подскажите, как это исправить?

5 ответ(ов)

1

Чаще всего, когда $('#myModal').modal('show'); не срабатывает, это происходит из-за того, что jQuery подключен дважды. Подключение jQuery дважды может привести к тому, что модальные окна перестают работать.

Чтобы решить эту проблему, удалите одну из ссылок на jQuery.

Кроме того, некоторые плагины могут вызывать ошибки. В этом случае добавьте следующий код:

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

Это должно помочь устранить проблему.

1

Вы можете использовать атрибуты данных для управления модальным окном, например:

<button type="button" data-toggle="modal" data-target="#myModal">Запустить модальное окно</button>

В этом случае вам не нужно писать JavaScript.

Больше информации вы можете найти здесь: документация Bootstrap.

0

Чтобы вызвать модальное окно, просто используйте метод modal() без передачи каких-либо параметров с помощью селектора jQuery. Вот пример:

$('#modal').modal();
0

Ваш код содержит ошибку в селекторе jQuery для кнопки. Вам необходимо добавить символ # перед mybtn, чтобы выбрать элемент с идентификатором mybtn. Также убедитесь, что у вас правильно настроена HTML-разметка для кнопки и модального окна. Вот исправленный вариант:

<script type="text/javascript">
    $(function () {
        $("#mybtn").click(function () {
            $("#my-modal").modal("show");
        });
    });
</script>

Теперь код должен корректно работать: при клике на кнопку с идентификатором mybtn будет отображаться модальное окно с идентификатором my-modal.

0

Я пробовал несколько методов, которые не сработали, но вот этот сработал как по волшебству:

$('#myModal').appendTo("body").modal('show');
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь