2011-07-20 5 views
2

私はテキストボックスを含むページを持っています。 AjaxFormComponentUpdatingBehaviorをテキストボックスonchangeに追加しました。ここでは、値に基づいていくつかのフォーム要素を更新します。wicket - Ajax呼び出しでページ内のフォーカスがリセットされない

私が理解する限り、改札はコールの後で最後に焦点を絞ったコンポーネントにフォーカスを戻します。ただし、この場合、フォーカスはコンポーネントに返されません。間違った動作は、ページがロードされた後の最初のAjax呼び出しでのみ発生し、その後の呼び出しでは正常に動作します。

エラーの場合は改札-AJAXデバッグログは、今、私は改札の専門家だが、私はすべてのAJAX呼び出しの後に改札が二回返さフォーカスのある要素の値をログに記録することに気づいた

INFO: Response parsed. Now invoking steps... 

INFO: returned focused element: [object HTMLInputElement] 

INFO: returned focused element: null 

INFO: Response processed successfully. 

INFO: Invoking post-call handler(s)... 

INFO: refocus last focused component not needed/allowed 

のように見えますこの場合、2番目のログはnullを記録します。

誰かが私が間違っていることを私に教えてもらえれば幸いです。読んでくれてありがとう 。

答えて

1

これは私の最高の推測ですが、問題の原因は何ですか。

最後にフォーカスされた要素をWicketが追跡するのは、コンポーネントのDOM idで変数を設定することです。

イベント中にコンポーネントのDOM idが変更された場合(Wicketはこれを行うことができます:あなたが知らないうちに:))、フロントエンドで最後にフォーカスされた要素参照が無効になります。

関連する問題