Калитка: форма в модальном окне

Я написал панель, которая поддерживает загрузку файлов / изображений. Итак, панель представляет собой простую однотонную форму. Панель работает на обычной странице Wicket.

Что я хотел бы сделать сейчас: я хотел бы использовать панель в модальном окне. Панель отображается правильно. Однако, когда я отправляю его / загружаю новый файл, мой браузер запрашивает, хочу ли я покинуть страницу. Страница, содержащая DIV модального окна, сама по себе является формой.

Мое исследование не выявило какой-либо интересной информации о формах в модальном окне, кроме того, что оно должно быть самодостаточным (вложенная форма). Думаю, это условие выполнено.

Есть какая-нибудь информация, что я сделал не так? Какие-нибудь уроки?


person spa    schedule 30.08.2011    source источник


Ответы (2)


Вам нужно использовать AjaxSubmitButton (или AjaxSubmitLink) для отправки формы. Проблема в том, что модальное окно требует связи Ajax. Если вы используете окно просто для повторной обработки всей страницы и не заботитесь о Ajax-качестве, вы можете переопределить метод ModalWindow#getCloseJavaScript().

person Martijn Dashorst    schedule 30.08.2011
comment
Да, именно так. AjaxSubmitButton сделал трюк для нормальной (не составной) формы. Однако multipart и AJAX изначально не работают вместе. Так что вся загрузка - это еще одна проблема ... - person spa; 31.08.2011

Как указал Мартин, модальное окно полагается на связь AJAX. Так что используйте AjaxSubmitButton или эквиваленты. Когда компоненты в главном окне необходимо обновить после отправки модального окна, это можно сделать, добавив их в AjaxRequestTarget.

Однако, когда дело доходит до многостраничных форм (загрузки файлов), это не работает. Судя по всему, multipart не работает с AJAX. Нужно сделать трюк с IFrame, как указано, например. здесь: http://www.doorient.com/blog/2008/04/23/wicket-ajax-like-file-upload-on-a-modal-window/

person spa    schedule 31.08.2011