I am using JSF 1.2 and Richfaces 3.3.3 in my sample JSF Application.
I have a form with rich:dataTable that having single column with h:inputText and footer having a4j:commandButton with value "add".
when I click "add" button then new row adding in rich:dataTable and that is working fine.
My need is after pressing "add" button the focus have to go newly created row to the h:inputText field...
sample code :
<rich:dataTable value="" var="">
<rich:column>
<f:facet name="header">
<h:outputText value="name" />
</f:facet>
<h:inputText id="name" value="#{obj.name}">
</rich:column>
<f:facet name="footer">
<a4j:commandButton value="add" action="{actionMethod}" />
</f:facet>
</rich:dataTable>
当我点击“添加”按钮然后在rich:dataTable中添加新行并且工作正常。 我需要的是在按下“添加”按钮后,焦点必须将新创建的行转到h:inputText字段......
如何使用JQuery或java脚本做任何想法?
答案 0 :(得分:1)
请在下面找到javascript以设置焦点。
function setFocus() {
var displayedRowsCountValue = document
.getElementById("exampleManageBean:displayedRowsCountValue").value;
var firstRowIndexValue = document
.getElementById("exampleManageBean:firstRowIndexValueId").value;
displayedRowsCountValue = parseInt(firstRowIndexValue - 1)
+ parseInt(displayedRowsCountValue);
for (i = parseInt(firstRowIndexValue - 1); i < parseInt(displayedRowsCountValue); i++) {
var tmpComponent = "selectedId[" + i + "]";
var temp = (document.getElementsByName(tmpComponent)[1]);
if (temp != null && temp.checked == true) {
var temp1 = document
.getElementById("exampleManageBean:exampleTable:"
+ i + ":exampleTextBox");
temp1.focus();
}
}
}
displayedRowsCountValue&amp; firstRowIndexValueId应取自t:dataScroller