0

私のプロジェクトは、Wicket のAjaxFormValidatingBehaviorを使用して、ツリー メニューを備えたマルチタブ フォームの種類で、フォーム コンテンツをセッションに自動保存しています (個々のタブには保存ボタンはありませんが、実際にフォームを送信する「保存」ボタンはありますが、検証を実行し、コンテンツをデータベースに保存します)。私はいくつかの問題に直面しています:

  1. この動作はすべてのフォーム コンポーネントのonChangeイベントに追加されるため、ユーザーがあるフィールドから別のフィールドに移動するたびにサーバー トリップが発生します。これを防ぐためにスロットル期間を指定できることは知っていますが、フォームの長さ/複雑さが異なり、多くのコンポーネントが動的に生成されるため (ツリー メニューを含む)、私の場合は設定できません。しかし、この迷惑なソリューションではなく、フォームのコンテンツを自動保存する (送信ボタンがない) より洗練されたソリューションはありますか?

  2. 私が直面しているもう 1 つの問題は、onChange イベントの投稿です。Firefoxでは、「サーバートリップ」が終了した後にコンポーネントがフォーカスを失います。IE7では正常に動作します。

4

1 に答える 1

0

最初の質問については、パイプライン機能を追加する必要があると思います。コンポーネントのonchange呼び出しで、webapp を呼び出す javascript 関数を呼び出します。スロットル期間で提供されるものと同様の機能をページ全体に含めることができます (たとえば、各呼び出しを遅らせ、x ミリ秒より古い場合にのみ最後の呼び出しをトリガーします)。

AjaxRequestTarget#focusComponent2 つ目については、最初の回答で説明したように、動作で を使用するか、「ラッパー」でこのことを処理する必要があると思います。

于 2012-05-15T11:46:16.620 に答える