2010-08-17 31 views
0

我正在提交一個頁面onclick的表單元素,並需要一個函數在提交刷新頁面後運行。我試圖添加一個動畫滾動回到提交的點擊元素。我已經介紹了滾動部分,但是我似乎可以弄清楚如何在頁面從提交中刷新後,讓我爲滾動編寫的函數運行。如何在Javascript中向.submit()添加回調函數?

任何及時的幫助將不勝感激!

+0

您正在使用哪個服務器平臺? – 2010-08-17 15:53:28

回答

0

如果你做了一個「真正的」表單提交,在實際的頁面刷新的地方,你無法從客戶端執行它(除了使用框架)。一旦你離開頁面,你的JavaScript超出了範圍。您需要將JavaScript插入到服務器上的刷新頁面。

另一方面,如果您通過ajax提交表單並刷新頁面的一部分,則根據您使用的框架,您將在您的應用程序中尋找像onSuccess等回調鉤ajax提交功能

+0

感謝您的幫助!看起來像這塊代碼需要更新到AJAX。 – designerdre101 2010-08-18 14:37:49

2

如果您正在進行完整提交而不是AJAX提交,那麼隨後顯示的頁面與提交表單的頁面不同。因此,點擊元素的身份將不會在第二頁上提供。

您需要做的是在提交處理程序期間,在窗體的隱藏字段中存儲單擊元素的標識(應該可能是某種唯一ID)。

當頁面刷新時,它應該有可用的唯一ID(可能與服務器端代碼放置在窗體的相同隱藏字段中),並且javascript函數可以讀取該值來控制滾動。

這是否有意義?

如果您更新您的問題以包含一些示例代碼,那麼我可能會進一步澄清。

+0

謝謝!這爲我清除了一些東西。此外,隱藏字段的想法是一個很好的想法,但由於頁面正在提交或基本上刷新,那麼刷新後該值是否會被重置? – designerdre101 2010-08-18 14:36:37

+0

隱藏字段的值設置在兩個地方。首先,在客戶端,這是爲了確保相關信息包含在帖子中。 (即單擊了哪個元素)第二個位置在服務器端,用於將點擊元素的標識傳遞給響應頁面,以便客戶端代碼可以滾動到該頁面。 (服務器端可能會最初將隱藏字段設置爲一個值(例如空字符串或零),表示沒有元素被單擊,並且不需要滾動。 – belugabob 2010-08-18 14:48:03

0

這在ajax中會更容易做到,但是如果您需要將它作爲回發函數執行,那麼您需要將一個事件附加到body load事件中,並將回送的數據發送回來,以確定頁面已加載作爲回發的一部分,而不是新的頁面加載。

例如在網頁上創建一個隱藏的控件並在回發中給它一個值,在回發檢查上看看這個隱藏的控件是否有值,如果是的話運行你的scorll代碼。

+0

Thanks!AJAX here here – designerdre101 2010-08-18 14:38:09