ajax 事件期间未更新 Primefaces 组件

Primefaces component not being updated during ajax event

我将 JSF 2.2 与 PrimeFaces 6.1 一起使用,并且为了进行 "optional" 验证,每次 p:inputNumber 失去焦点时,都会更新并呈现 p:button或不基于特定的验证方法:

<div class="ui-grid-col-2">
    <p:inputNumber id="quantidade" value="#{vendaMB.quantidadeItem}" decimalPlaces="1" minValue="0.0" onfocus="this.setSelectionRange(0, this.value.length)">
        <p:ajax event="blur" process="@this" update="btnImgQtdeUltrapassa"/>
    </p:inputNumber>
</div>
<div class="ui-grid-col-1">
    <p:button id="btnImgQtdeUltrapassa" title="Quantidade inserida ultrapassa quantidade em estoque" disabled="true" icon="fa fa-fw fa-warning" rendered="#{vendaMB.verificaQtdeEstoque()}" styleClass="btn-round"/>
</div>

奇怪的是,当我使用update="@form"时,更新是完美的,但是有其他过程和方法不能在这个表单更新上重新执行,因此,我不能使用这个方法.有人可以帮我解决这个问题吗?

此外,我正在使用 "p:button",但实际上我只需要图标和类似于其 "title" 属性的内容。如果您还可以建议我使用另一种标签或方法来代替此 "improvised icon".

,我将不胜感激

您不能对可能有条件呈现的项目执行 "update="。如果未呈现,则无法更新它。 只需这样做:

<h:panelGroup id="updateme">
  <p:commandButton rendered="#{bean.condition}"/>
</h:panelGroup>

现在您可以使用

<p:ajax update="updateme"/>