如何在表单提交到_blank后刷新表单页面
How can I refresh a form page after the form submits to _blank?
我有一个针对_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()"
但没有任何改变。
有什么建议吗?
(请不要查询)
不知道为什么window.location.reload()
不起作用。 我认为应该。 但是,这似乎确实有效:
onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
有两种方法可以做到这一点,一种你可能不想听到。
第一:
在表单 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
}
?>
第二:
使用AJAX(javascript或jQuery)"提交"表单,然后在AJAX函数的回调中继续对页面进行任何更改,包括重定向到新页面。
接受的答案并没有为我带来预期的结果。
Accepted answer:
onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
将接受的答案从提交更改为点击确实解决了我的问题;
Worked for me:
onclick="setTimeout(function () { window.location.reload(); }, 3)"
可能会有不希望的结果,或者这可能不是首选,但它的表现符合我的预期。
如果将
回调传递给 onsubmit 事件属性,它应该可以工作。例如
(传统的匿名功能)
onsubmit="function() {location.reload()}"
或
(箭头功能)
onsubmit="() => location.reload()"
location.refresh(true);
会有所帮助
相关文章:
- Jquery提交表单而不刷新
- 单击表单中的按钮会导致页面刷新
- 停止刷新表单,但要发布
- 如何刷新表单的yii2前端验证
- 刷新<表单>送审不起作用
- 阻止 jquery 移动刷新表单提交
- Javascript AppendChild 自动刷新表单
- 我需要刷新表单,但仍然保持复选框的值不变
- CRM 2013:刷新表单或通过浏览器的后退按钮向后导航时出现奇怪的行为
- 如何在表单提交到_blank后刷新表单页面
- CRM 2013:保存后强制刷新表单
- 停止刷新表单
- 使用jQuery Mobile刷新表单页面
- 如何停止随机生成的数字从刷新表单提交
- 提交parse.com后刷新表单
- 提交后,刷新表单页面上的感谢信息
- 在提交时停止自动刷新表单
- 刷新表单结果而不刷新页面
- 在不刷新表单的情况下调用锚链接单击事件上的标记库
- 刷新表单提交不工作