表单提交后阻止页面重新加载

时间:2014-11-19 13:46:30

标签: javascript jquery forms reload

是否有办法检测并停止页面是否重新加载。

我有一个页面,在成功提交其中的表单后会重新加载。我想要一个事件监听器,它可以看到页面是否正在重新加载,并且应该阻止它被重新加载。

我不能return false;成功提交注册表格

6 个答案:

答案 0 :(得分:3)

在你的HTML中:

<form onsubmit="myFunction()"> Enter name: <input type="text"> <input type="submit"> </form>

在你的javascript中:

myFunction = function(e) { // prevents default action to happen e.preventDefault(); // do what ever you want to do here // i.e. perform a AJAX call }

答案 1 :(得分:2)

您必须使用AJAX提交表单以避免刷新整个页面。

这可以通过常规Javascript实现,但使用jQuery更容易 http://api.jquery.com/jquery.ajax/

答案 2 :(得分:1)

检测页面是否正在重新加载是一个非常脏的解决方案。

您必须阻止默认操作

<script>
$( "a" ).click(function( event ) {
  event.preventDefault();
});
</script>

http://api.jquery.com/event.preventdefault/

答案 3 :(得分:0)

在这种情况下,您需要通过某种AJAX调用来实现表单发送机制。

因为发送表单实际上是在加载带有一些参数的新页面(这是表单数据)。

答案 4 :(得分:0)

以下是标准表单提交的工作原理:

Browser -> issues GET or POST HTTP request -> Server
Browser <- returns the result of the request <- Server
Browser re-renders the current page based on the server's response.

因此,标准表单提交将始终导致页面重新加载。

但是,您可以使用AJAX发出HTTP请求,这样可以避免页面重新加载。

查看$.ajax

答案 5 :(得分:0)

提交后的默认操作是发送到操作数据的页面。如果您试图停止刷新,即您没有提交表格。

  1. 使用e.preventDefault()停止默认提交表单。这将停止默认的提交行为,包括重新加载页面[但表单未提交]
  2. 您必须在后台使用 AJAX 提交表单[您的数据在后台提交到所需页面]