如何在Tapestry5中更新区域后设置焦点

Mar*_*ark 2 tapestry

我有一个区域,其中包含一个包含循环的表单.当有人更改循环中的文本字段时,它会更新整个表单并循环onKeyUp事件.

我试图找到一种方法告诉Tapestry将焦点返回到上次更新的文本字段.我认为我有这个工作,但区域更新似乎使文本字段在设置焦点后立即失去焦点.我可以将焦点设置为区域外的字段而不会出现问题,因此它似乎是导致问题的区域更新.

有关如何处理这个的任何建议?

ins*_*oud 5

听起来你需要在重新加载区域后设置焦点.每当我需要执行这样的任务时,我会设置一个观察者来监听Javascript中Tapestry区域更新的事件:

$('formZone').observe(Tapestry.ZONE_UPDATED_EVENT, function(event) {
    // set the focus
});   
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.