it-swarm.com.de

Wie kann ich eine Formularseite aktualisieren, nachdem das Formular an _blank übermittelt wurde?

Ich habe ein HTML-Formular für _blank. Ich möchte, dass die Seite, auf der sich das Formular befindet, nach dem Senden erneut geladen wird.

Hier ist ein Beispiel für ein Markup:

<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>

Wenn Sie dieses Formular absenden, wird es in einem neuen Fenster oder einer neuen Registerkarte POST in result.php geändert. Damit bleibt die Formularseite unverändert. Ich möchte die Formularseite neu laden oder zumindest alle Felder zurücksetzen.

Ich habe <form onsubmit="location.reload()"... sowie onsubmit="window.location.reload()" versucht, aber es hat sich nichts geändert.

Irgendwelche Vorschläge?

(bitte keine Jquery)

11
Hal Carleton

Nicht sicher, warum window.location.reload() nicht funktioniert. Ich denke es sollte Dies scheint jedoch zu funktionieren:

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

Es gibt zwei Möglichkeiten, dies zu tun, eine, von der Sie möglicherweise nichts wissen möchten.

ZUERST:

Wenn Sie im Formular-Init-Tag action="" einstellen, wird das Formular an dieselbe Seite (an sich selbst) gesendet.

<form action="" method="post">

Auf diese Weise können Sie serverseitigen Code wie oben (z. B. mit PHP) oben auf der Seite hinzufügen:

<?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
    }
?>

ZWEITE:

Verwenden Sie AJAX (Javascript oder jQuery), um das Formular zu "senden", und nehmen Sie dann im Callback der Funktion AJAX die gewünschten Änderungen an der Seite vor, einschließlich der Weiterleitung an eine neue Seite.

1
gibberish

Die akzeptierte Antwort brachte für mich nicht die gewünschten Ergebnisse.

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

Das Ändern der akzeptierten Antwort von onsubmit in onclick hat mein Problem behoben.

Worked for me:
onclick="setTimeout(function () { window.location.reload(); }, 3)"

Es kann unerwünschte Ergebnisse geben, oder dies ist möglicherweise nicht bevorzugt, aber es funktioniert für mich wie gewünscht.

0
user10434463