有没有办法提交HTML表单并重新加载同一页面?

时间:2015-09-13 00:11:21

标签: html forms

我有一个简单的HTML表单:

  <form action="https://[URL goes here]" method="POST">
    <input type="radio" name="args" value="on">Value 1.
    <br>
    <input type="radio" name="args" value="off">Value 2.
    <br>
    <input type="submit" value="Submit!">
  </form>

我遇到的问题是URL返回一些状态信息,页面重新加载该状态信息。我希望表单所在的页面只是重新加载并忽略来自服务器的任何响应。

我试图替换

    <input type="submit" value="Submit!">

    <input type="submit" onclick="return false" value="Submit!">

但这不起作用。我需要使用表单传递“args”值,但我不关心服务器返回什么。我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用iframe

<form action="https://www.google.com/search" target="ignore" onsubmit="this.reset();">
  Search for: <input type="text" name="q" value="Forms"/>
  <input type="submit"/>
</form>
<iframe name="ignore" src="about:blank" style="display:none;"></iframe>

答案 1 :(得分:1)

这个问题为如何做到这一点提供了一些简单的建议。

Submit form without page reloading

总结:

  • 使用ajax(需要JavaScript)
  • 使用iframe(无JavaScript!)

为了完整起见,我要补充一点,如果你能控制服务器,你可以:

  • 返回HTTP状态204 No content(仍然没有JavaScript!)

这意味着:成功,但无所事事。所以浏览器保持不变。

(还有205 Reset Content应重置表单,但我不确定浏览器处理的效果如何)

更多信息: https://benramsey.com/blog/2008/05/http-status-204-no-content-and-205-reset-content/

答案 2 :(得分:0)

您可以使用Ajax提交表单。 并致电

location.reload();

重新加载您的页面。