Вы можете попробовать сделать так, чтобы форма предназначалась для скрытого iframe, а затем установить атрибут onload
iframe с помощью вызова javascript для window.location.href.
<script type="text/javascript">
var okToRedirect = false;
function redirect() {
if (okToRedirect) {
window.location.href = 'path/to/new/location';
}
}
</script>
<form action="...some action..." target="MyIframe" onsubmit="okToRedirect = true;">
...
</form>
<iframe name="MyIframe" style="display: none;" onload="parent.redirect()"></iframe>
Когда форма публикуется, результаты отображаются внутри скрытого фрейма. Когда загрузка iframe завершится, атрибут onload
запустит JavaScript, чтобы перенаправить пользователя.
Обновление
Я обновил свой ответ из-за вашего комментария. Я добавил метод javascript, который может вызывать iframe. Теперь существует глобальная переменная, которая изначально имеет значение false. Это предотвратит перенаправление первой загрузки страницы. Когда форма отправляет сообщение, событие onsubmit
в форме установит для глобальной переменной okToRedirect
значение true, iframe перезагрузится и вызовет метод redirect()
. На этот раз произойдет перенаправление.