java - 处理 wicket 中 AutoCompleteTextField 的 onchange 事件

标签 java web-applications autocomplete wicket

我正在使用 Java 和 Wicket 为网络应用程序编写一个自动完成组件。

当用户选择自动完成列表的一个选项时,有没有办法处理 onchange 事件来运行一些代码?我尝试在 AutoCompleteTextField 中这样做:

        setOutputMarkupId(true);
        add(new AjaxEventBehavior("onchange") {
            @Override
            protected void onEvent(AjaxRequestTarget target) {
                System.out.println(getInput());
            }
        });

但是getInput 方法返回null。 :(
有没有办法对 onchange 事件使用react并能够读取用户输入的内容?

感谢您的时间和知识:)

最佳答案

onchange 事件仅在焦点从组件移开时触发。 (这是一个通用的浏览器/javascript 东西。)

您需要将处理程序挂接到 onkeypress 事件。

你需要的不是AjaxEventBehavior而是AjaxFormComponentUpdatingBehavior:

    add( new AjaxFormComponentUpdatingBehavior( "onchange") {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            System.out.println( "Value: "+field.getValue() );

        }
    });

虽然它也适用于 getInput(),但通常更高级别(正确转义并由模型支持)getValue() 更适合。

关于java - 处理 wicket 中 AutoCompleteTextField 的 onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5223610/

相关文章:

java - Java中的深度缓冲和多边形填充

Java Webapp 找不到本地服务器目录

ios - 是否可以在 Swift 上使用 iOS 自动更正库?

Java 抽象和接口(interface)

java - 无法 Swagger 工作(wildfly 9)

asp.net - 当我编译网站项目时如何停止Visual放置web.config

c# - 帮助开始使用 VS2010 构建 ASP.NET 网站

asp.net - jQuery 自动完成在 AutoPostBack 上丢失文本

javascript - 自动完成搜索,有没有一种方法可以在不使用php的情况下编写自动完成搜索代码?

java - 如何动态更改 tcp-ibound-gateway 使用的端口