Javascript 在页面退出时检测PrimeFaces中UI组件的客户端更改?

Javascript 在页面退出时检测PrimeFaces中UI组件的客户端更改?,javascript,jquery,jsf,jsf-2,primefaces,Javascript,Jquery,Jsf,Jsf 2,Primefaces,我想在离开页面时发出警告消息,未保存的更改将丢失。但是,为了正确地执行此操作,我需要知道PrimeFaces组件是否在客户端发生了更改 我是否可以使用现有的机制?我曾考虑过在所有输入和文本区域上注册keydown监听器,但该字段的内容也可以通过鼠标事件来更改。另一方面,如果焦点位于字段内部,然后页面关闭,则不会触发onblur,因此不会检测到此类更改。我还测试过,当使用鼠标进行更改时,在某些组件(如selectOneMenu、autoComplete)上注册onchange不起作用。没有完整的现

我想在离开页面时发出警告消息,未保存的更改将丢失。但是,为了正确地执行此操作,我需要知道PrimeFaces组件是否在客户端发生了更改


我是否可以使用现有的机制?我曾考虑过在所有输入和文本区域上注册keydown监听器,但该字段的内容也可以通过鼠标事件来更改。另一方面,如果焦点位于字段内部,然后页面关闭,则不会触发onblur,因此不会检测到此类更改。我还测试过,当使用鼠标进行更改时,在某些组件(如selectOneMenu、autoComplete)上注册onchange不起作用。

没有完整的现有机制

但是您可以在值更改时调用一个
ValueChangeListener
,也可以在元素中使用带有
onChange
属性的javascript函数

我还测试过,当使用鼠标进行更改时,在某些组件(如selectOneMenu、autoComplete)上注册onchange不起作用

这取决于您使用的浏览器。为了确保一切正常,我将测试
onClick
,并检查元素中的值是否实际发生了更改