Getting a Wicket text box's value in an AJAX onchange event
Use an OnChangeAjaxBehavior
, and your component model will be updated automatically. You can query the value by using 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(); } }));
Actually, OnChangeAjaxBehavior
is pretty aggressive because it registers a key listener, so in most cases new AjaxFormComponentUpdatingBehavior("onchange"){...}
will work just as well, if you just want the onchange
event.