ユーザーが文字列を書き込むときに現在の値を取得するためTextFieldに を追加した場所があります。AjaxFormComponentUpdatingBehavior
filterByObject = new TextField<String>("filterByObject", true, new PropertyModel<String>(searchParams, "objectFilter"));
AjaxFormComponentUpdatingBehavior changeFilterBinded = new AjaxFormComponentUpdatingBehavior ("onkeyup") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.addComponent(componentToUpdate);
}
};
filterByObject.add(changeFilterBinded);
の中にいくつかの文字を入れるとtextfield、onUpdateメソッドが正しく呼び出され、コンポーネントが の現在の状態に基づいてsearchParams正しく変更されます。残念ながら、Backspace挿入したものをキャンセルするために使用すると、onUpdateが呼び出されません。
イベント ( onkeypress、など)onkeydownを変更しようとしましonchangeたが、うまくいきません。のみonChange動作しますが、フォーカスを別のコンポーネントに変更する必要があります。
どうすればその日を救うことができますか?