我们正在使用 Richfaces 在我们的一个项目中。
我需要将元素动态地集中在一些用户操作上。 这里的问题是我只有身份证( JSF 我提供给元素的特定ID。)
例如:for h:inputText 我用它作为
h:inputText
<h:inputText id="userNameInputBox" value="<<some binding>>/>
这个输入框是单独嵌入的。当我在表单中包含输入框时,输入框的ID将为: formName:userNameInputBox (<<formName>>:<<elementId>>)
formName:userNameInputBox (<<formName>>:<<elementId>>)
我将重新使用多个输入框 JSP 也就是说,我不知道将在其中包含输入框的父窗体。
现在,我需要焦点()输入框。当前无法执行此操作,因为我没有实际生成的ID( <<formname>>:<<elementId>> )但我只有我提供的JSF特定的ID。
<<formname>>:<<elementId>>
我怎样才能使聚焦元素起作用?
使用richfaces标记函数 #{rich:clientId( JSF_ID )} 获取组件的适当客户端ID。如果需要DOM树中的元素,可以直接使用 #{rich:element( JSF_ID )}
#{rich:clientId( JSF_ID )}
#{rich:element( JSF_ID )}
例子: onclick="#{rich:element('userNameInputBox')}.focus()"
onclick="#{rich:element('userNameInputBox')}.focus()"
我相信你需要RichFaces 3.2.0或更高版本才能工作。
有关的文档 Richfaces JS Interaction functions