我在我的表单中检测到未保存的数据,以便在用户离开页面时警告用户。到目前为止,这适用于所有元素,除了 primefaces 日历元素。
目前我的方法与这个答案有关。但这不适用于日历元素。我发现更改侦听器通常不适用于以编程方式设置的值。可能这就是我的问题的原因。因此,我尝试通过为我的所有日历元素注册一个单击和模糊侦听器来实现我自己的非常简单的“更改侦听器”。在单击侦听器中,我暂时保存日历元素的当前值。在模糊侦听器中,我将保存的值与当前值进行比较。但是这种方法不起作用,因为我无法在模糊侦听器中获取日历元素的更改值。我试图通过几种方式获得价值:
$(this).val();
this.value;
$(this).html();
$(this).attr('value');
但在每种情况下,我都会得到旧值。所以我认为“简单的更改侦听器”方法也不起作用。
我的 primefaces 版本是 3.4.2。
JSF 实现(可能不相关)是:Mojarra 2.1.6