我有一个以_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)
答案 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);
会有所帮助