我正在使用 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/