Primefaces:p:textEditor和p:editor:如何持续监听价值变化和焦点变化

时间:2017-07-21 03:09:00

标签: ajax jsf primefaces primefaces-extensions

Primefaces 6.1,Primefaces Extensions 6.1,JSF Mojarra 2.3.0 (Netbeans 8.2 + Glassfish 4.1.1或Payara 4.1)

我有多个要求,我更喜欢在没有客户端JavaScript体操的情况下解决(即纯粹使用Java支持bean监听器)。

R1。我需要能够在p:textEditorp:editor字段下方连续显示当前字符数(相对于允许的最大字符数)(BTW p:inputTextarea提供的功能非常好 - 框)。

R2。我需要能够提醒用户他们没有保存更改(因此我需要检测模糊和焦点事件)。其中一个原因是编辑器正在复合组件中使用,而复合组件又可以在嵌套p:tab / p:accordionPanel内多次使用,其中包含许多其他表单域和按钮。每个封装的编辑器都有自己的“保存”按钮。用户可能会关闭选项卡/手风琴或移动到另一个选项卡/手风琴而不保存,因此我想要一条运行警告消息,表示值已更改且尚未保存,如果用户离开表单字段,我希望用户咆哮没有保存更改。

我的第一个问题是valueChangeListenerp:editor的{​​{1}}似乎仅在我使用处理编辑器的p:textEditor保存更改后的值时触发。 p:commandButtonp:editor似乎都不支持p:textEditor听众:

p:ajax

(这也意味着我不能只是专注于'以及'模糊'事件。)

[我尝试了PrimeFaces Extensions Unable to attach behavior to non-ClientBehaviorHolder parent ,它允许pe:ckEditor监听,但它还有其他多个问题。例如,在通过p:ajax捕获确实连续的值更改时,从UIinput源获得的值始终是实际输入后面的一个字符,从而中断R1(连续字符计数)。它似乎也不提供与p:ajax合作的PrimeFaces Core样式API操作,例如widgetVar。它似乎不适用于clear()。然而,它确实能够检测到模糊'并且'关注'。]

无论如何,我想知道p:resetInputp:textEditor如何:

  • 持续捕获值更改并在支持bean侦听器中处理它们。

  • 当用户离开编辑器字段而没有保存更改时捕获。

  • 当用户关闭包含编辑器的选项卡而未保存更改时捕获。

0 个答案:

没有答案