我正在使用JSF 1.2和RichFaces。我有一个要求,点击命令按钮(<h:commandButton>
)RichFaces数据表将显示3组行,这工作正常,但问题是我需要在数据表的文本框中设置焦点这是行不通的。请找到我正在使用的示例代码。
命令按钮:
<a4j:commandButton immediate="true"
action="#{bean.addTomethod}"
reRender="myform"
oncomplete= "setFocusOnRichComponenet();"
rendered="true">
</a4j:commandButton>
JavaScript代码:
function setFocusOnRichComponenet(){
document.getElementById("myform:richDataTableList:0:richTextBoxID").focus();
}
此处,myform:richDataTableList:0:richTextBoxID
是我想要关注的组件的id
。
答案 0 :(得分:0)
当动态生成id时,有时尝试使用document.getElementById引用可能是错误的,因为您必须知道完整的id。
更简单的方法是使用RichFaces方法clientId('elementName')
这基本上将解析确切的id,因此您不必通过tableName []引用.Element [] format。
因此,对于您的场景,您可以替换javascript函数,如下所示:
function setFocusOnRichComponenet(){
document.getElementById("#{rich:clientId('myTextBox')}").focus();
}
其中'myTextBox'是您尝试引用的文本框的名称
答案 1 :(得分:0)
在输入中添加一个类:
TypeError: class constructors must be invoked with 'new' (when importing the library into a react project and running in the browser)
在使用jQuery的函数中按类设置焦点:
<h:inputText id="test" class="testClass"/>