Вероятно, это зависит от контекста вашего всплывающего окна, но вместо использования традиционного всплывающего окна вы можете рассмотреть что-то менее инвазивное и склонное к блокировке рекламы, например лайтбокс или другие инструменты отображения на основе ajax в страница. Вы можете вызвать лайтбокс из события щелчка на кнопке отправки, отобразить свое сообщение вместе с ним, а затем отправить форму при закрытии или подтверждении.
Избегайте решений, в которых просмотр страницы результатов формы зависит от javascript, поскольку некоторые (необычные) пользователи могут отключить ее. Если он реализован, как указано выше, такие пользователи пропустят ваше всплывающее окно, но форма все равно будет проходить.
Вы можете использовать jQuery для реализации этого без изменения php-кода, который MODx использует для генерации вашей формы, и вместо этого прикрепить событие click к кнопке отправки формы, поместив javascript в заголовок xhtml. Например:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="/colorbox/jquery.colorbox.js"></script>
<script type="javascript">
$("#FormID.input[type=submit]").click(function(e) {
/* prevent form from submitting */
e.preventDefault();
e.stopPropagation();
/* on colorbox close, submit form */
$(document).bind('cbox_close', function(){
e.submit(); // submit the form on close
});
/* open the colorbox */
.colorbox({href:"http://example.com/url1"});
});
</script>
Я использовал ColorBox здесь, но та же идея должна применяться к другим альтернативам лайтбокса. Я не проверял в браузере это, поэтому обязательно протестируйте и адаптируйте при необходимости.