Getting a Wicket text box's value in an AJAX onchange event

旧巷老猫 提交于 2019-12-03 08:06:14

问题


When a user enters a number in a Wicket text field, I need to capture the value entered on an AJAX onchange event. How can I do this?


回答1:


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.



来源:https://stackoverflow.com/questions/5564634/getting-a-wicket-text-boxs-value-in-an-ajax-onchange-event

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!