在AJAX onchange事件中获取Wicket文本框的值

时间:2011-04-06 10:07:59

标签: java ajax wicket onchange

当用户在Wicket文本字段中输入数字时,我需要捕获在AJAX onchange事件中输入的值。我怎么能这样做?

1 个答案:

答案 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事件。