处理 wicket 中 AutoCompleteTextField 的 onchange 事件
我正在使用 Java 和 Wicket 为 Web 应用程序编写一个自动完成组件。
当用户选择自动完成列表的选项之一时,有没有办法处理 onchange 事件来运行一些代码?我尝试在 AutoCompleteTextField 中执行此操作:
setOutputMarkupId(true);
add(new AjaxEventBehavior("onchange") {
@Override
protected void onEvent(AjaxRequestTarget target) {
System.out.println(getInput());
}
});
但 getInput 方法返回 null。 :(
有没有办法对 onchange 事件做出反应并能够读取用户输入的内容?
感谢您的时间和知识:)
I'm writing an autocomplete component for a webapp using Java and Wicket.
Is there a way to handle the onchange event to run some code when the user selects one of the options of the autocomplete list? I tried doing this in the AutoCompleteTextField:
setOutputMarkupId(true);
add(new AjaxEventBehavior("onchange") {
@Override
protected void onEvent(AjaxRequestTarget target) {
System.out.println(getInput());
}
});
But the getInput method returns null. :(
Is there a way to react to the onchange event and to be able to read what the user has entered?
Thanks for you time and knowledge :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
onchange
事件仅在焦点移离组件时触发。 (这是通用浏览器/javascript 的东西。)您需要将处理程序挂钩到onkeypress
事件。您需要的不是
AjaxEventBehavior
但是AjaxFormComponentUpdatingBehavior
:虽然它也可以与
getInput()
一起使用,但通常是更高级别的(正确转义并由模型支持)getValue( )
更合适。Theonchange
event is only fired when the focus is moved away from the component. (This is a universal browser/javascript thing.)You need to hook your handler to theonkeypress
event instead.What you need is not
AjaxEventBehavior
butAjaxFormComponentUpdatingBehavior
:Although it works with
getInput()
too, but usually the somewhat higher level (properly escaped and backed by the model)getValue()
is a better fit.