2012-06-19 79 views
1

瞭解點擊並提交以下 例如:時提交表單,點擊功能的順序,並提交

<form action="url" method="post"> 
<input type="text" id="input1"/> 
<input type="submit" value="submit" onclick="testFun()"/> 
</form> 

,如果它是可能的功能testFun運行後,當我們點擊按鈕提交

表單的提交

如果答案是否定的。 爲什麼?點擊提交按鈕時瀏覽器如何工作?該命令是點擊功能 - >提交?是對的??

+1

提交「關閉」頁面 – gdoron

+0

我不明白你的意思 – SKing7

+0

在提交表單之後,是否要在**或**之前運行**功能?第一個可能的第二個不是(沒有發佈使用AJAX的表單) – ManseUK

回答

1

不,你不能表單提交後執行一個功能 - 如下這些事情被執行的命令是:

  • 用戶點擊提交按鈕
  • 被執行的onclick功能
  • 瀏覽器將頁面提交到url指定的動作中

您可以阻止瀏覽器提交頁面從onclick處理程序返回false

function myfunc() { 
    // do some stuff 
    return false; 
} 

提交按鈕,然後應修改如下:

<input type="submit" onclick="return myfunc()"/> 

如果你想執行的函數的形式提交後,你需要提交使用AJAX的表單 - 這不會導致瀏覽器離開頁面,並且在提交表單後可以執行JavaScript函數

+0

是否有關於此的文檔???謝謝 – SKing7

+0

文檔中有各種各樣的文檔 - 但最有趣的是關於事件:http://www.quirksmode.org/js/events_events.html – ManseUK

+0

按鈕的'onlick'事件在'submit表格事件 – ManseUK

1

這是不可能的,因爲表單的action會將瀏覽器重定向到該URL。

1選項將在您的actionurl頁面上運行testFun()頁面,但根據功能的不同,這可能是不可能的。

如果您要發佈更多關於您實際嘗試在此處做什麼的信息,那麼這可能會有所幫助。

+0

爲什麼?你的意思是點擊時,點擊功能運行,當它運行結束時,並提交?這是 ? – SKing7

+0

當您提交表單時,它將發佈到URL。因此你不再在表單頁面上,所以你不能在那裏運行任何函數。 – Curt

+0

是的,但是如果瀏覽器會忽略點擊功能而只提交? – SKing7

0

不,這是不可能的,提交後你不在當前頁面的範圍。但是,如果您使用iframe爲您的表單提交併在父頁面上調用該函數,那麼我認爲它會起作用。

0

的anwswer是「這是不可能的」

爲什麼

因爲一旦瀏覽器觸發提交事件與頁面中的所有用戶交互停止。在提交事件被觸發後,您的瀏覽器和網絡服務器之間的通信就會開始。這是怎樣設計的。

在你的情況下,表單提交發生的原因是你的頁面中有一個表單,並且在那個表單中你有一個類型=按鈕的輸入。如果您不想提交頁面,則可以將輸入的類型更改爲按鈕。

檢查這個小提琴http://jsfiddle.net/kiranvj/MBxNs/1/

+0

這是可能的 - 使用AJAX發佈表格 – ManseUK

+0

正確但Sking7使用提交按鈕進行表單提交,而不是ajax。 – kiranvj

+0

是的,我同意。但爲什麼?點擊提交按鈕時瀏覽器如何工作?該命令是點擊功能 - >提交?是對的?? – SKing7

1

沒有,但testFun威力(反過來)調用另一個,異步函數,不會運行,直到形式提交了(這點不會因爲運行在所有在該瀏覽器將離開該頁面)。