Вы здесь

Webform в окне colorbox проблемы с запуском и валидацией

0

Привет всем, хотелось бы, что бы вы просветили меня по данному вопросу, был бы очень благодарен!

Задача: Нужно отображать вебформу в всплывающем окне. Сделал вебформу, решил отображать ее через ColorboxNode, сформировал линк вида:

<a href="/node/id?width=800&height=100%25" class="colorbox-node colorbox-node-gallery">link</a>

По клику открывается окно с формой - все как нужно, но открывается только на странице с формой, на других страницах просто зависает на стадии загрузки содержимого формы, в консоле ошибка:

Uncaught TypeError: $(...).once is not a function 

С чем это связано?

И второй вопрос, в форме, которая в всплывающем окне, есть обязательные поля, если их не заполнять и нажать отправить, то ошибка перекидывается на страницу с формой, а как оставаться все в том же всплывающем окне?

Заранее спасибо за наводку!

[UPD] Заметил, что если форму сделать доступной как блок и выводить скрытой на каждой странице, то работает линк нормально, но выше описанное дичайший костыль, который полностью перечеркивает значимость ColorboxNode. Получается, что если формы нет на странице, ColorboxNode не может ее погрузить. Почему?

[UPD] Нашел причину, но не понимаю логики. Убрал из формы fieldset'ы и грузится норм. С ними ошибка. Как это можно объяснить?

Версия Drupal: 
7.x
Категория: 
Form API
Связанные проекты: 
Webform
Вопрос задан 23.09.2015 - 10:35
Аватар пользователя im
im
32

Ответы

0

Проверьте, подгружается ли библиотека colorbox на другие страницы. Модуль Colorbox имеет пару настроек для этого. Советую также заглянуть в документацию к нему.

Проверка валидности формы без перезагрузки вроде здесь: http://saw.tl/drupal/validate-form-in-ajax-submit-callback.html и здесь: http://habrahabr.ru/post/147262/ и тут: http://drupalace.ru/lesson/zastavlyaem-lyubuyu-formu-vypolnyatsya-cherez...

Ну, или готовый модуль с реализованной валидацией по ajax https://www.drupal.org/project/clientside_validation

Ответ дан 23.09.2015 - 11:24

Проверьте, подгружается ли библиотека colorbox на другие страницы. Модуль Colorbox имеет пару настроек для этого. Советую также заглянуть в документацию к нему.

Да, все норм, проблема именно с загрузкой формы. Так как если у линка изменить id ноды на любую другую страницу, открывается все ок.

Комментарий оставлен 23.09.2015 - 11:59
0

Ну, или готовый модуль с реализованной валидацией по ajax https://www.drupal.org/project/clientside_validation

Еще https://www.drupal.org/project/webform_ajax нужен.

Uncaught TypeError: $(...).once is not a function

Проверьте версию jQuery (https://www.drupal.org/project/jquery_update), поставьте 1.7 для frontend'а

Ответ дан 23.09.2015 - 11:35

Проверьте версию jQuery (https://www.drupal.org/project/jquery_update), поставьте 1.7 для frontend'а

Точно не в этом проблема. Так как если изменить у линка айди с ноды с формой на обычную текстовую ноду, то открывается все ок.

Комментарий оставлен 23.09.2015 - 12:03

И все же у Вас установлен https://www.drupal.org/project/jquery_update ? Настроен правильно? Ошибка то выскакивает.

Еще попробуйте изменить height=100%25 на просто height=450, к примеру. Не помню про поддержку относительных размеров в colorbox-node.

Комментарий оставлен 23.09.2015 - 12:33

И все же у Вас установлен https://www.drupal.org/project/jquery_update ? Настроен правильно? Ошибка то выскакивает.

грю с ним проблем нет, так как на других страницах сайта другой функционал работает через colorbox. проблема почему то в добавленных филдсетах в форму. UPD в посте

Комментарий оставлен 23.09.2015 - 12:56
0

Попробуйте модуль Modal Forms

Ответ дан 24.09.2015 - 10:30
Аватар пользователя shu
shu
172

Дык, другой функционал на сайте организован с помощью колорбокса, не вижу надобности подключать лишние модули

Комментарий оставлен 24.09.2015 - 11:04