当用户在Wicket文本字段中输入数字时,我需要捕获在AJAX onchange
事件中输入的值。我怎么能这样做?
答案 0 :(得分:32)
使用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
非常具有攻击性,因为它会注册一个关键的监听器,所以在大多数情况下new AjaxFormComponentUpdatingBehavior("onchange"){...}
也可以正常工作,如果您只想要onchange
事件。