перехватить открытие модального окна

Вопросы по вёрстке и JavaScript
Ответить
Notad
Сообщения: 78
Зарегистрирован: 2015.10.03, 16:30

перехватить открытие модального окна

Сообщение Notad »

Добрый день. Нужно перед открытием модального окна поменять в нем данные. Реализовал таким вот кодом.

Код: Выделить всё


$(document).ready(function()
    {
    var buttons = $(".pageelsement .btn");

    buttons.click(function(e)
        {
        if(this.getAttribute('data_action') == 'edite')
            {
            var pageelsement = $(this).parent().parent().parent();
            var idpage = pageelsement.attr('id').split('_')[2];

            $.getJSON('ajaxgetmodel', {id:idpage, type:'page'}, function(data)
                {
                var formdite = $('#editePage');
                
                formdite.find('#editepage-id').val(idpage);
                formdite.find('#editepage-login').val(data.login);
                formdite.find('#editepage-password').val(data.password);

                });

            }
        });

    });

 
Данные меняются но после того как модальное окно открылось. Подозреваю что нужно как то эти действия добавить в очередность событий модального окна...???
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: перехватить открытие модального окна

Сообщение Йож »

Почему вопрос по фреймворку?

По сути средствами фреймворка можно для модального окна - точнее для формы при его вызове выставить значения заранее.
Нужно знать, как у Вас устроен вызов.
Notad
Сообщения: 78
Зарегистрирован: 2015.10.03, 16:30

Re: перехватить открытие модального окна

Сообщение Notad »

Йож писал(а):Почему вопрос по фреймворку?

По сути средствами фреймворка можно для модального окна - точнее для формы при его вызове выставить значения заранее.
Нужно знать, как у Вас устроен вызов.
Суть, модальное окно подготавливается за раньше, для того чтобы в нем редактировать свойства модели, какой модели неизвестно. Есть список моделей возле каждой есть кнопка "редактировать". После нажатия на кнопку загружаются данные для редакции по аяксу, и вставляются в уже готовое модальное окно, точнее в форму в нем. В итоге одно окно для всех моделей.
Но эту операцию нужно как то вставить перед открытием окна. Потому что открытие окна висит на кнопках и это действие что я описал также висит на кнопках. Потому окно открывается но не дожидаясь пока поменяются данные. Я где то видел что есть события в javascript при открытии модального окна, это фреймворк. Если бы кто подсказал как в эти события добавить мой код.
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: перехватить открытие модального окна

Сообщение Onotole »

Google -> Bootstrap modal event before open
Notad
Сообщения: 78
Зарегистрирован: 2015.10.03, 16:30

Re: перехватить открытие модального окна

Сообщение Notad »

Переписал код, теперь он срабатывает на событие модального окна, но проблема не исчезла. Окно открывается а данные меняются со временем, когда загружаться через аякс.

Код: Выделить всё


$('#modaledite').on('show.bs.modal', function (e)
    {
    var pageelsement = $(e.relatedTarget).parent().parent().parent();
    var idpage = pageelsement.attr('id').split('_')[2];

    $.getJSON('ajaxgetmodel', {id:idpage, type:'page'}, function(data)
        {
        var formeditepage = $('#editePage');

        formeditepage.data('yiiActiveForm').settings.validationUrl = '$editepageurl?id=' + idpage;
        formeditepage.attr('action', '$editepageurl?id=' + idpage);

        formeditepage.find('#editepage-login').val(data.login);
        formeditepage.find('#editepage-password').val(data.password);

        });
    });

 
Notad
Сообщения: 78
Зарегистрирован: 2015.10.03, 16:30

Re: перехватить открытие модального окна

Сообщение Notad »

Всем спасибо, разобрался. Нужно было перехват нажатия вынести в отдельную функцию а из нее вызывать открытия модального окна через

Код: Выделить всё

$('#modaledite').modal('show');
Ответить