2015-02-04 35 views
-2

點擊HTML表單中的「提交」按鈕時,執行什麼代碼?重新執行頁面上的所有HTML(和PHP)代碼,還是僅僅是代碼內部的代碼?HTML表單按鈕執行什麼?

EDIT

下面的代碼exectued在窗體上。

<buttoninput type="submit" value="Login"> Login </button> 

編輯2

如果表單是後續,和下面的按鈕是在裏面。會發生什麼?整個頁面將被重新執行,還是隻是表單被重新執行?

<form action="stackoverflow/posts/28333195" method="post"> 
    <buttoninput type="submit" value="Login"> Login </button> 
</form> 
+0

一般來說,執行指定的動作(GET或POST)到服務器與一些預定數據你不能指望頁面上的代碼重新執行。但是,您無法計算該代碼不會再次執行。 –

+2

這取決於:如果有表單,動作,JavaScript,黑客入侵的瀏覽器,獨角獸。 – HamZa

+0

無論你告訴它執行什麼。 –

回答

2

JavaScript的事件處理程序的缺席與正常操作的衝突,將表單數據將被編碼爲每在enctype屬性中指定(爲一個POST請求)的編碼或放置在查詢字符串(GET請求)並且數據將被提交到action指定的URL。

這將載入一個新頁面。

任何與該URL關聯的服務器端代碼都將運行(使用任何分支語句(例如if)正常指導程序流)。

the client side of form submission的全部細節都在HTML規範中。

1

在一個非常高的水平,這是發生了什麼:

  1. 用戶點擊提交按鈕。
  2. 按鈕onclick處理程序將執行JavaScript代碼。
  3. 表格onsubmit處理程序將執行JavaScript代碼。
  4. 表單將被提交到<form action="...">中指定的URL。
  5. 任何服務器端PHP邏輯都會執行。

這忽略幾個步驟可能發生:表單驗證,服務器端重定向,額外的JavaScript的事件處理程序,等等

+0

我不明白5 –

+0

假設

「中的URL指向PHP腳本,該腳本將在服務器上執行。 –