2012-05-14 50 views
0

我的項目是使用Wicket的AjaxFormValidatingBehavior自動保存在排序與樹形菜單一個多標籤形式的形式,內容,會議(有沒有保存在單獨的標籤頁按鈕,雖然有是一個「保存」按鈕,實際提交表單,運行驗證並將內容保存到數據庫)。我現在面臨幾個問題:AjaxFormValidatingBehavior性能和失去焦點在Firefox

  1. 由於行爲被添加到所有形式組件的的onChange事件,有一個服務器之旅從一個場,每次用戶移動到另一個。我知道可以指定一個油門持續時間來防止這種情況發生,但是由於我的表單具有不同的長度/複雜度,動態生成的許多組件(包括樹形菜單),因此無法設置我的情況。但有沒有一種更優雅的解決方案來自動保存表單內容(沒有提交按鈕),而不是這個惱人的解決方案。

  2. 我正面臨的另一個問題是發佈onChange事件,在Firefox上,「服務器旅程」結束後,組件失去了焦點。而在IE7上它工作正常。

回答

0

對於第一個問題,我認爲你需要添加一個流水線設備,在你的組件的調用onchange你這就要求你的web應用的JavaScript函數。您可以添加一個功能,類似於節氣門持續時間提供的功能,但是是頁面範圍內的功能(延遲每個呼叫,並且只有在它比x毫秒更早時才觸發最後一個)。

對於第二個,我認爲你必須在你的行爲中使用AjaxRequestTarget#focusComponent,或者在第一個答案中描述的「包裝器」中處理這件事。

+0

通常情況下,您不應該失去焦點,除非您刷新用戶剛剛關注的組件。我很確定爲什麼這會在IE7中起作用 –