2011-07-20 30 views
2

我有一个页面,其中包含一个文本框。我已将AjaxFormComponentUpdatingBehavior添加到onchange文本框中,其中我根据其值更新了其他几个表单元素。检票 - Ajax调用不重置页面

据我所知,wicket会在通话结束后返回焦点到最后一个焦点组件。但是,在这种情况下,重点不会返回到组件。展示的错误行为只发生在页面加载后进行的第一次ajax调用,后续调用表现良好。

检票阿贾克斯调试日志中的错误的情况下看起来像

INFO: Response parsed. Now invoking steps... 

INFO: returned focused element: [object HTMLInputElement] 

INFO: returned focused element: null 

INFO: Response processed successfully. 

INFO: Invoking post-call handler(s)... 

INFO: refocus last focused component not needed/allowed 

现在我没有检票口的专家,但我注意到,每一个AJAX调用检票口后返回记录集中元素的值的两倍,其中第二个在这种情况下记录为空。

如果有人能够启发我可能做错的事,我将不胜感激。谢谢阅读 。

回答

1

这是我最好的猜测,可能是什么问题。

Wicket跟踪最后一个聚焦元素是通过使用组件的DOM id设置一个变量。

如果组件的DOM ID在事件期间发生了更改(Wicket可以这样做,但您不知道:)),则前端中最后一个关注的元素引用将变为无效。