Ответ 1
Не знаю, почему window.location.reload()
не работает. Думаю, так и должно быть. Однако, похоже, это работает:
onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
У меня есть HTML-форма, которая нацелена на _blank
. Я хотел бы, чтобы страница, на которой была заполнена форма, перезагрузилась после отправки.
Итак, вот примерная разметка:
<form method="POST" action="result.php" target="_blank">
<label for="name">Name:</label>
<input type="text" name="name" />
<label for="email">Email:</label>
<input type="email" name="email" />
<input type="submit" value="submit" />
</form>
Поэтому, когда вы отправляете эту форму, она будет POST
до result.php
в новом окне или вкладке. Это оставляет страницу формы как есть. Я хочу, чтобы страница формы перезагружала или, по крайней мере, reset все поля.
Я пробовал <form onsubmit="location.reload()"...
, а также onsubmit="window.location.reload()"
, но ничего не изменилось.
Любые предложения?
(пожалуйста, не jquery)
Не знаю, почему window.location.reload()
не работает. Думаю, так и должно быть. Однако, похоже, это работает:
onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
Есть два способа сделать это: один, о котором вы, возможно, не захотите слышать.
FIRST:
В теге init формы, если вы установите action=""
, форма будет отправляться на ту же страницу (сама по себе).
<form action="" method="post">
Это позволяет добавить серверный код в начало страницы, например (используя PHP):
<?php
If (empty($_POST)===false) {
//server side scripting to handle the submitted form
}else{
?>
//HTML to create/show the page with form for user input
<?php
//Close the if statement
}
?>
ВТОРАЯ:
Используйте AJAX (javascript или jQuery) для "отправки" формы, а затем - в обратном вызове функции AJAX - продолжайте с любыми изменениями, которые вы хотите внести на страницу, включая перенаправление на новую страницу.
Принятый ответ не дал желаемых результатов для меня.
Accepted answer:
onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
Изменение принятого ответа с onsubmit на onclick решило мою проблему;
Worked for me:
onclick="setTimeout(function () { window.location.reload(); }, 3)"
Там могут быть нежелательные результаты, или это не может быть предпочтительным, но это работает так, как мне нужно.
location.refresh(true);
поможет