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

2022-09-03 00:03:32

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


答案 1

使用 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();
        }
    }));

实际上,它非常激进,因为它注册了一个密钥侦听器,因此在大多数情况下,如果您只需要该事件,也可以正常工作。OnChangeAjaxBehaviornew AjaxFormComponentUpdatingBehavior("onchange"){...}onchange


答案 2

推荐