OmniFaces亮点不设置与重点(OmniFaces highlight does not set

2019-09-26 13:52发布

我有一个简单的登录表单。 我使用<p:ajax>调用<p:blockUI>见这个问题)。

<h:commandButton id="anmeldung_button"
action="#{benutzerAnmeldung.anmelden}" value="Anmelden"
styleClass="btn btn-info btn-sm">
    <p:ajax process="@form" update="@form"/>
</h:commandButton>
<p:blockUI id="block" block=":anmeldung" trigger="anmeldung_button" />

我使用<o:highlight />以突出显示无效输入。 这工作得很好。 它正在与一个<f:ajax>完美,太。

Apperently,它不与工作<p:ajax>

我怎样才能做到这一点?

Answer 1:

这是通过引起<p:ajax>尝试通过执行的onComplete脚本之后重新聚焦有源元件doEval()如可在可见handleReFocus()函数core.ajax.js脚本 。但是,当您提交由表单点击,而不是按Enter键 ,而里面输入,则该有源元件变得命令按钮本身的命令按钮,而不是输入文本。你可以只使用回车键提交表单证实了这一点。你会看到焦点这样做的权利。

有你的具体情况2种方法来解决此:

  1. 利用PrimeFaces自身自动聚焦设备的经由<p:focus>其被放置为下面的表格内:

     <h:form id="anmeldung"> <p:focus context="anmeldung" /> ... </h:form> 

    它还可以自动考虑到了无效的输入字段。

  2. 设置PrimeFaces.customFocustrue在JavaScript中,使handleReFocus()函数将无法完成其工作。

     <script>PrimeFaces.customFocus = true;</script> 


文章来源: OmniFaces highlight does not set focus with