11

我们在我们的一个项目中使用Richfaces

我需要将元素动态地集中在某些用户操作上。这里的问题是我只有 id (我给元素的JSF特定 id。)

例如:因为h:inputText我用它作为

<h:inputText id="userNameInputBox" value="<<some binding>>/>

并且这个输入框以单独的形式嵌入。当我在表单中包含输入框时,输入框的 id 将是:formName:userNameInputBox (<<formName>>:<<elementId>>)

我将在多个JSP中重复使用输入框。这意味着,我不知道我将在其中包含输入框的父表单。

现在,我需要 focus() 输入框。目前我无法执行此操作,因为我没有实际生成的 id ( <<formname>>:<<elementId>>),但我只有我提供的 JSF 特定 id。

如何使聚焦元素起作用?

4

1 回答 1

15

使用 RichFaces 标记函数#{rich:clientId( JSF_ID )}来获取组件的适当客户端 ID。如果需要 DOM 树中的元素,可以直接使用 #{rich:element( JSF_ID )}

例子: onclick="#{rich:element('userNameInputBox')}.focus()"

我相信您需要 RichFaces 3.2.0 或更高版本才能正常工作。

Richfaces JS 交互函数的文档

于 2009-11-05T10:02:53.753 回答