【问题标题】:p:inputText blur event doesn't work the first timep:inputText 模糊事件第一次不起作用
【发布时间】:2021-06-21 21:00:31
【问题描述】:

我有下面的 java、JSF 和 PrimeFaces 代码,但是当我第一次启动程序时,事件 Blur 不起作用,在第一次之后,它起作用了。你知道为什么会这样吗?

这里的主要问题是,事件模糊应该在第一次工作。

<p:column headerText="Col1">
      <p:inputText style="width:100px;" id="valorUnitario"
             disabled="#{OrcamentoNovoBean.desabilitar}"
             value="#{item.valor}" converter="BigDecimalConverter"
             onkeypress="javascript:return currencyFormat(this,'.',',',event,2);"
             onkeydown="javascript:return pressTabSaldo(event, #{indiceVar});"
             maxlength="12">
             <p:ajax 
                listener="#{OrcamentoNovoBean.verificaCalculoPecasMaoDeObraSaldo()}"
                event="blur"
update=":form1:dataTablePecas:valorTotalSaldo,:form1:totalSaldo,:form1:totalEstoque,:form1:btnEnviar" />
     </p:inputText>
</p:column> 

【问题讨论】:

  • 您可以尝试在您的 onkey ... 函数中添加延迟吗?

标签: jsf primefaces


【解决方案1】:

不要使用blur 事件。如果值没有更改,则无需检查或更新内容。这只是资源的浪费。最好只使用默认的change 事件。由于它是默认设置,您可以简单地从 p:ajax 中删除 event 属性。

我还注意到您正在使用onkeypress 侦听器将值格式化为货币。如果您使用p:inputNumber,您将获得开箱即用的货币格式。

【讨论】:

    【解决方案2】:

    只是为了更新这个。我解决了包括 onblur="function" 我不知道为什么会这样,但是第一次 Java 拾取 inputtext 中的事件模糊,第二次 AJAX 工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多