__blank
_をターゲットとするHTMLフォームがあります。フォームが送信された後、そのページがリロードされるようにします。
だからここにいくつかのサンプルマークアップがあります:
_<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
_になります。これにより、フォームページがそのまま残ります。フォームページを再読み込みするか、少なくともすべてのフィールドをリセットします。
<form onsubmit="location.reload()"...
とonsubmit="window.location.reload()"
を試しましたが、何も変わりませんでした。
助言がありますか?
(jqueryはありません)
window.location.reload()
が機能しない理由はわかりません。すべきだと思う。しかし、これはうまくいくようです:
onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
これを行うには2つの方法があります。1つは聞きたくないかもしれません。
最初:
フォームの初期化タグで、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
}
?>
SECOND:
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)"
望ましくない結果が生じる可能性があります。または、これは好ましくないかもしれませんが、私が望むように機能します。