如何在JSF中的窗体的第一个字段上设置焦点和光标

时间:2017-09-21 21:54:35

标签: javascript java jquery jsf richfaces

我遇到的问题是指Java Server Faces中的表单:

<rich:popupPanel id="popupConfigFile" autosized="true" resizeable="false">           
   <h:form>
      <h:panelGrid id="pgConfigFile" columns="2" columnClasses="colLabel,colInput">
         <h:outputLabel value="Name: "/>
         <h:inputText value="#{configBean.configFile.name}" tabindex="1"/>
         <h:outputLabel value="Description: "/>
         <h:inputTextarea value="#{configBean.configFile.description}" tabindex="2"/>
         <h:outputLabel value="Date: "/>
         <rich:calendar value="{configBean.configFile.date}" datePattern="dd/MM/yyyy" 
                               showFooter="false" tabindex="3"/>
         <h:outputLabel value="Enabled: "/>
         <h:selectBooleanCheckbox value="#{configBean.configFile.enabledConfig}" tabindex="4"/>
      </h:panelGrid>
      <br/>
      <a4j:commandButton value="Save" action="#{configBean.saveConfig}"                        
        oncomplete="if(#{facesContext.maximumSeverity==null}){#{rich:component('popupConfigFile')}.hide();}"/>
   </h:form>
</rich:popupPanel>

我想在NAME示例中将焦点和光标设置在表单的第一个字段(INPUT)上。然后,使用TAB键,将焦点和光标有序地连接到其他字段(TEXTAREA,CALENDAR,CHECKBOX)。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

有多种方法可以将第一个可编辑组件聚焦在表单中。这是其中一种方式。 我相信你想为弹出窗口中的第一个输入元素设置焦点。使用onShow属性并将焦点设置为第一个组件。

onShow="setTimeout(function(){ $('#formId\\:firstComponentId').focus();}, 500); "