【问题标题】:handling to onchange event of AutoCompleteTextField in wicket处理检票口中 AutoCompleteTextField 的 onchange 事件
【发布时间】:2011-07-10 13:33:39
【问题描述】:

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

当用户选择自动完成列表的选项之一时,有没有办法处理 onchange 事件以运行一些代码?我尝试在 AutoCompleteTextField 中执行此操作:

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

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

感谢您的时间和知识:)

【问题讨论】:

    标签: java web-applications autocomplete wicket


    【解决方案1】:

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

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

    你需要的不是AjaxEventBehavior,而是AjaxFormComponentUpdatingBehavior

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

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

    【讨论】:

    • 嗯,我不这么认为...问题不在于没有调用该方法,而是检票口组件 AutoCompleteTextField 返回 null 作为其输入。不管怎样,我会试试你说的。
    • 这是正确的,谢谢,但现在我遇到了另一个问题。如果你有时间,请检查这个问题:stackoverflow.com/questions/5226492/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多