我在此页面上有4个输入文本,每个页面都有自己的按钮要按,现在,如果我单击一个输入文本,则焦点始终设置在顶部的CommandButton上。
这页纸:
<h:panelGrid columns="4">
<h:outputLabel for="calSysCode">#{msgs.calSysCode}</h:outputLabel>
<p:inputText id="calSysCode" label="#{msgs.calSysCode}" size="35" required="true" value="#{lookupBean.calSyscode}" >
<f:validator validatorId="syscodeValidator" />
</p:inputText>
<p:message for="calSysCode"/>
<p:commandButton value="#{msgs.search}" process="@this, calSysCode, cboxWithDependencies" action="submitCalSysCode" update="@form"/>
<h:outputLabel for="contractSysCode">#{msgs.contractSysCode}</h:outputLabel>
<p:inputText id="contractSysCode" label="#{msgs.contractSysCode}" size="35" required="true" value="#{lookupBean.contrSyscode}" >
<f:validator validatorId="syscodeValidator" />
</p:inputText>
<p:message for="contractSysCode"/>
<p:commandButton value="#{msgs.search}" process="@this, contractSysCode, cboxWithDependencies" action="submitContrSysCode" update="@form"/>
<h:outputLabel for="employeeSysCode">#{msgs.employeeSysCode}</h:outputLabel>
<p:inputText id="employeeSysCode" label="#{msgs.employeeSysCode}" size="35" required="true" value="#{lookupBean.employeeSyscode}" >
<f:validator validatorId="syscodeValidator" />
</p:inputText>
<p:message for="employeeSysCode"/>
<p:commandButton value="#{msgs.search}" process="@this, employeeSysCode, cboxWithDependencies" action="submitEmployeeSysCode" update="@form"/>
<h:outputLabel for="employerSysCode">#{msgs.employerSysCode}</h:outputLabel>
<p:inputText id="employerSysCode" label="#{msgs.employerSysCode}" size="35" required="true" value="#{lookupBean.employerSyscode}" >
<f:validator validatorId="syscodeValidator" />
</p:inputText>
<p:message for="employerSysCode"/>
<p:commandButton value="#{msgs.search}" process="@this, employerSysCode" action="submitEmployerSysCode" update="@form"/>
</h:panelGrid>
现在我想知道是否可以将焦点从每个inputText设置到每个按钮?因此,当我单击calSyscode inputText并按Enter时,将使用calSyscode命令按钮,而当我单击contractSyscode时,将使用合同syscode按钮。
编辑:如果您想使用素数来完成此操作,则需要使用此代码,它与Jigar的代码相同,但有点适合素数和jQuery
jQuery(PrimeFaces.escapeClientId('sysCodeForm:calSysCode')).keyup(function(event){
if(event.keyCode == 13){
jQuery(PrimeFaces.escapeClientId('sysCodeForm:calenderButton')).click();
}
});
最佳答案
JQuery将使其更容易执行,您可以按照以下方式进行处理。
$("#id_of_textbox1").keyup(function(event){
if(event.keyCode == 13){
$("#id_of_button1").click();
}
});
$("#id_of_textbox2").keyup(function(event){
if(event.keyCode == 13){
$("#id_of_button2").click();
}
});
也可以看看
Trigger button click with JavaScript on Enter key in Text Box