マイAutoCompleteTextField(getChoicesメソッドの実装や作業)と呼ばれていませんテキストフィールドには表示されますが、オートコンプリートメニューから項目を選択した場合は表示されません。メニューの文字列はテキストフィールドに書き込まれますが、別の変更が行われたときにのみonUpdateが呼び出されます。のWicket 1.5オートコンプリートテキストフィールドにonUpdate行動は
編集:Wicket 1.5以前はこれが機能していました。
マイAutoCompleteTextField(getChoicesメソッドの実装や作業)と呼ばれていませんテキストフィールドには表示されますが、オートコンプリートメニューから項目を選択した場合は表示されません。メニューの文字列はテキストフィールドに書き込まれますが、別の変更が行われたときにのみonUpdateが呼び出されます。のWicket 1.5オートコンプリートテキストフィールドにonUpdate行動は
編集:Wicket 1.5以前はこれが機能していました。
AjaxFormComponentUpdatingBehavior("onchange")
を追加します。
OnChangeAjaxbehavior()
は、すべてのキーを押すときと同じように、すべての変更(Javascript Wicket.ChangeHandler
を使用)で発生するようです。
AjaxFormComponentUpdatingBehavior
を使用すると、異なる値のテキストフィールドからのフォーカスやオートコンプリートリストからの値の選択など、イベントリスナーがonChange
JavaScriptイベントに追加されます。
まだOnChangeAjaxbehavior extends AjaxFormComponentUpdatingBehavior
がこのロジックを継承しない理由がわからない場合は、オーバーライドする必要があります。
UPDATEこれはよくOnChangeAjaxBehavior
を使用した場合onchange
javascriptのイベントは無視されている理由かもしれません。改札-ajax.jsで見つかったWicket.ChangeHandler
のソースコードは、さまざまなイベントのハンドラを設定します:ブラウザがあれば
obj.onchangeoriginal = obj.onchange
onchangeoriginal
でonchange
イベントハンドラをバックアップしますIE、Safariなど、元のonchange
イベントハンドラをonKeyUp
,onpaste
、oncut
に割り当てます。onchange
イベントハンドラをonInput
に割り当てます。最後に、それは常にonchange
イベントハンドラ削除:wicket-autocomplete.js
に
obj.onchange = function(event){
Wicket.stopEvent(event);
}
コードを手動で項目選択でonchange
イベントハンドラを発射しているようです。おそらく最初にobj.onchangeoriginal
を確認する必要があります。
したがって、このjsはOnDomReady
で実行されているため、これらの2つの動作を共存させることは可能でしょうか。おそらく、新しいJIRAを提出する時でしょうか?これは、わずかに関連する問題になる可能性があります
:WICKET-2424: OnChangeAjaxBehavior + DatePicker do not work together
おかげで、それは今働いています!この動作の背後にあるロジックを知らないでください、私のバグのようです... – rotsch
私はこの問題も発見しました。この変更で修正されているはずです: 'obj.onchangeoriginal = obj.onchange;'しかし、期待どおりに動作しません。 – rotsch
ええと...まずは 'wicket-autocomplete.js'で' obj.onchangeoriginal'をチェックしているようです。 –