如何将焦点设置为h:inputText在rich:dataTable中作为一列后按a4j:commandButton like(+)在footer:dataTable?

时间:2012-03-28 09:34:05

标签: jsf-1.2

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脚本做任何想法?

1 个答案:

答案 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