表单提交到_blank后如何刷新表单页面?

时间:2013-09-20 15:36:48

标签: javascript html forms submit onsubmit

我有一个以_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>

因此,当您提交此表单时,它会在新窗口或标签中POSTresult.php。这样就保留了表单页面。我希望表单页面重新加载,或者至少重置所有字段。

我已尝试<form onsubmit="location.reload()"...以及onsubmit="window.location.reload()",但没有任何改变。

有什么建议吗?

(请不要jquery)

4 个答案:

答案 0 :(得分:20)

不确定为什么window.location.reload()不起作用。我认为应该。但是,这似乎有效:

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

答案 1 :(得分:1)

有两种方法可以做到这一点,一种你可能不想听到的方法。

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

<强> SECOND:

使用AJAX(javascript或jQuery)“提交”表单,然后 - 在AJAX函数的回调中 - 继续进行您想要对页面进行的任何更改,包括重定向到新页面。

答案 2 :(得分:0)

被接受的答案对我没有产生预期的结果。

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

将接受的答案从onsubmit更改为onclick确实解决了我的问题;

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

可能会有不希望的结果,或者可能不是最好的结果,但是它对我来说是理想的。

答案 3 :(得分:-3)

location.refresh(true);

会有所帮助