簡體   English   中英

防止表單提交后重新加載頁面

[英]prevent page from reloading after form submit

有沒有一種方法可以檢測並停止頁面是否正在重新加載。

我有一個頁面,該頁面在成功提交其中存在的表單后將被重新加載。 我想要一個事件偵聽器,該事件偵聽器可以查看是否正在重新加載頁面,並應阻止它重新加載。

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

在您的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 // ie perform a AJAX call }

您必須使用AJAX提交表單,以避免刷新整個頁面。

可以使用常規Javascript完成此操作,但使用jQuery http://api.jquery.com/jquery.ajax/可以使其更容易

檢測頁面是否正在重新加載是非常骯臟的解決方案。

您必須防止默認操作

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

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

在這種情況下,您將需要通過某種AJAX調用來實現表單發送機制。

因為發送表單實際上是在加載帶有某些參數(表單數據)的新頁面。

標准表單提交的工作方式如下:

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

提交后的默認操作是發送到操作數據的頁面。 如果您嘗試停止刷新,即不提交表單。

  1. 停止使用e.preventDefault()默認提交表單。 這將停止默認的提交行為,包括重新加載頁面[但未提交表單]
  2. 您必須在后台使用AJAX提交表單[您的數據在后台提交到所需頁面]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM