Colorbox Node + Webform: изменение размера окна после отправки формы


18

Colorbox Node - очень популярный модуль для открытия контента во всплывающем окне. Он очень удобен для вывода вебформ. Размер окна автоматически подстраивается под размер контента. Но вот заметил одну неприятную штуку - когда мы отправляем неправильно заполненную форму, Друпал нам возвращает сообщение об ошибке и высота контента увеличивается. Но вот размер popup остается прежним из-за чего появляется вертикальный скролл.

Собственно, проблема:
Небольшой js скрипт для решения данной проблемы:
//Перехватываем событие после выполнения ajax запроса
    var originalSuccessCallback = Drupal.ajax.prototype.success;
    Drupal.ajax.prototype.success = function(response, status) {
        originalSuccessCallback.apply(this, arguments);
//Если wrapper внутри окна colorbox, подстраиваем окно под размер контента
        var el = $(this.wrapper);
        if(el.parents('#colorbox').length){
           setTimeout($.colorbox.resize, 100);
        }
    }

Результат:

Update 26.07.2020
Если вам надо добавить автоматическое изменение размеров окна при открытии формы, то можно перехватить событие cbox_complete и выполнить resize:

    $(document).bind('cbox_complete', function(){
        setTimeout($.colorbox.resize, 100);
    });
Добавить комментарий
Может быть интересно

Данный скрипт поможет пересохранить файлы Excel в csv. Может быть полезно перед отправкой прайсов на хостинг для дальнейшей обработки

5

В общем, проблема старая и известная. Правда не на всех рейсурсах заметная. При использовании модуля Metatag, на форму редактирования сущностей добавляется вкладка для индивидуального изменения метатегов. И на ней используется браузер токенов.

1
Те, кто использует модуль Double field могли заметить, что в текстовой области отсутствует редактор. Бывают случаи, когда для удобства наполнения он просто необходим.
1
Данный модуль просто незаменим, если на Вашем сайте реализована мультиязычность или на Вашем сайте используются панели. Multilingual Panels позволяет создавать/менять настройки панели для различных языков.
1

Часто возникает необходимость программно заполнять сайт определенным контентом. Заполнение текстовых полей обычно не вызывает проблем. Другое дело - картинки. Почему-то с ними возникает много сложностей у людей.