繁体   English   中英

PrimeFaces.current().focus 不适用于 commandButton

[英]PrimeFaces.current().focus Not working on commandButton

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')}" />

是的,我知道为什么。 PrimeFaces 中的 focus 方法明确排除了用于聚焦输入字段的按钮。 这是源代码。

focus: function(id, context) {
    var selector = ':not(:submit):not(:button):input:visible:enabled[name]';

注意 Jquery 选择器中的“not(:submit):not(:button)”。

源代码: https : //github.com/primefaces/primefaces/blob/master/src/main/resources/META-INF/resources/primefaces/core/core.js#L416-L444

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM