ユーザーがWicketテキストフィールドに数値を入力するとき、AJAX onchange
イベントで入力された値をキャプチャする必要があります。これを行うにはどうすればよいですか?
OnChangeAjaxBehavior
を使用すると、コンポーネントモデルが自動的に更新されます。 component.getDefaultModelObject()
を使用して値をクエリできます
_add(new TextField<String>(id, someModel)
.add(new OnChangeAjaxBehavior(){
private static final long serialVersionUID =
2462233190993745889L;
@Override
protected void onUpdate(final AjaxRequestTarget target){
// Maybe you want to update some components here?
// Access the updated model object:
final Object value = getComponent().getDefaultModelObject();
// or:
final String valueAsString =
((TextField<String>) getComponent()).getModelObject();
}
}));
_
実際、OnChangeAjaxBehavior
はキーリスナーを登録するため、かなり積極的です。したがって、onchange
イベントが必要な場合は、ほとんどの場合、new AjaxFormComponentUpdatingBehavior("onchange"){...}
も同様に機能します。