Как обновить страницу формы после отправки формы в пустую?

у меня есть 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 to result.php в новом окне или вкладке. Это оставляет страницу формы как есть. Я хочу, чтобы страница формы перезагрузилась или, по крайней мере, сбросила все поля.

Я пробовал <form onsubmit="location.reload()"... а также onsubmit="window.location.reload()" но ничего не изменилось.

любой предложения?

(пожалуйста, не jquery)

3 ответов


Не знаю, почему window.location.reload() не работает. Думаю, так и должно быть. Однако это, похоже, работает:

onsubmit="setTimeout(function () { window.location.reload(); }, 10)"

есть два способа сделать это, один, что вы не хотите услышать.

первый:

в теге 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 -- продолжайте любые изменения, которые вы хотите внести на страницу, включая перенаправление на новую страницу.


location.refresh(true);

поможет