PrimeFaces.current()。focus方法与inputTexts一起使用,但与commandButton一起使用时,我看不到任何结果,可替代地,我可以使用executeScript,但想法是将焦点用于这种重新查询:
这有效:
PrimeFaces.current().executeScript("document.getElementById('frmAperturaCajaMasiva:btnAceptarAperturaCajaMasiva').focus();");
这适用于inputTexts,但不适用于按钮:
PrimeFaces.current().focus("frmAperturaCajaMasiva:btnAceptarAperturaCajaMasiva");
知道为什么吗?两者相同,但两个命令不同
这是xhtml上按钮的代码,没什么花哨的:)
<p:commandButton id="btnAceptarAperturaCajaMasiva"
value="#{etiquetasMsg.cerrar_caja}" styleClass="cds-icon-button"
icon="cds-icon aprobar"
disabled="#{aperturaMasivaMB.blBtnProcesar}"
title="#{tooltipsMsg.cierrecaja_masiva_cerrar}"
onclick="if(!confirmarSeleccionTabla(PF('dtbFrmCajaWv'),null)){ return false; }"
actionListener="#{aperturaMasivaMB.validarCierreCajaMasivo}"
rendered="#{adminRestriccionMB.validarRestriccion('BTN_CERRAR_CAJAMASIVO')}" />
答案 0 :(得分:2)
是的,我知道为什么。 PrimeFaces中的focus方法专门排除用于聚焦输入字段的按钮。这是源代码。
focus: function(id, context) {
var selector = ':not(:submit):not(:button):input:visible:enabled[name]';
请注意Jquery选择器中的“ not(:submit):not(:button)”。