p:cellEditor 在单击链接时不保存 textarea onblur

End*_*dre 5 jsf primefaces

当在单元p:cellEditor > p:inputTextarea格外onblur单击时,将文本保存在 a 内非常有效。但是,当单击来自 a 的链接(例如 commandButton、commandLink)时,p:cellEditor > p:inputTextarea它不会p:ajax cellEdit预先执行该事件。它改为执行单击的链接。

这是不正确的,因为它适用于p:inputTextarea没有p:cellEditor. 我意识到这也可能是 Primefaces 的错误。知道如何解决这个问题吗?

<p:dataTable>

    <p:ajax event="cellEdit" listener="#{bean.onCellEdit}" />

    <p:cellEditor>
        <f:facet name="output">
          <h:outputText    value="#{model.text}" />
        </f:facet>
        <f:facet name="input">
          <p:inputTextarea value="#{model.text}" />
        </f:facet>
    </p:cellEditor>

<p:dataTable>

<p:commandButton actionListener="#{bean.someOtherAction}" />
Run Code Online (Sandbox Code Playgroud)

我将错误提交给了 Primefaces。但是是否有通过 javascript/jQuery 解决此问题的方法?

End*_*dre 4

在 Primefaces 错误报告上没有成功后,我最终将侦听器直接连接到所有实例p:cellEditor。它似乎有效,我不会再失去输入了。

<p:cellEditor>
    <f:facet name="output">
      <h:outputText    value="#{model.text}" />
    </f:facet>
    <f:facet name="input">
      <p:inputTextarea value="#{model.text}">
      <!-- this is the relevant line -->
      <p:ajax listener="#{bean.onCellEdit}" global="false" update="@this" />
      <!-- end relevant line -->
      </p:inputTextarea>
    </f:facet>
</p:cellEditor>
Run Code Online (Sandbox Code Playgroud)