是否有办法检测并停止页面是否重新加载。
我有一个页面,在成功提交其中的表单后会重新加载。我想要一个事件监听器,它可以看到页面是否正在重新加载,并且应该阻止它被重新加载。
我不能return false;
成功提交注册表格
答案 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>
答案 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)
提交后的默认操作是发送到操作数据的页面。如果您试图停止刷新,即您没有提交表格。
e.preventDefault()
停止默认提交表单。这将停止默认的提交行为,包括重新加载页面[但表单未提交]