12

をターゲットとする 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>

したがって、このフォームを送信するとPOSTresult.php新しいウィンドウまたはタブに表示されます。これにより、フォームページはそのまま残ります。フォーム ページをリロードするか、少なくともすべてのフィールドをリセットします。

私も試してみまし<form onsubmit="location.reload()"...onsubmit="window.location.reload()"が、何も変わりませんでした。

助言がありますか?

(jqueryはご遠慮ください)

4

5 に答える 5

25

なぜwindow.location.reload()うまくいかないのかわからない。そうすべきだと思います。ただし、これはうまくいくようです:

onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
于 2013-09-20T15:46:19.930 に答える
1

これには 2 つの方法がありますが、1 つは聞きたくない方法です。

最初:

フォームの 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
    }
?>

2番目:

AJAX (javascript または jQuery) を使用してフォームを「送信」し、AJAX 関数のコールバックで、新しいページへのリダイレクトを含め、ページに加えたい変更を続行します。

于 2013-09-20T15:46:17.797 に答える
-2
location.refresh(true);

役立ちます

于 2014-11-28T14:17:25.180 に答える