我有一个复杂的ICEFaces XHTML页面,根据用户在页面上输入数据时设置的标志,有条件地呈现特定组件。我想要做的是直接将焦点集中到某个特定领域,而不是在页面的初始渲染过程中。如何在初始渲染后设置ICEFaces组件的焦点?
ICEFaces documentation暗示我可以使用outputBody组件的焦点属性来做到这一点。具体来说:
如果设置初始焦点,则必须在第一次渲染调用时渲染焦点组件,否则只有在组件渲染时才设置焦点属性。
这似乎暗示我可以在我的条件组件被渲染时操纵焦点属性值。但是,我没有看到inputText组件的任何属性允许我在组件渲染时更改值。
我误会了文档吗?何时何地可以更改outputBody的焦点属性值,以便条件呈现字段在出现时获取输入焦点?还是我使用错误的工具来解决这个问题?
不幸的是,在我的测试,这种方法有时工作,有时没有,基于什么操作导致系统来呈现我的页面或显示我的条件字段。我能够验证addJavascriptCall()总是在我需要时触发;然而,Javascript本身似乎并不总是执行。我使用的Seam框架可能会让问题复杂化。在这个问题的接受答案中显示的方法似乎在100%的时间内工作。 – dbisdorf