如何检测primefaces日历元素的变化
How to detect changes in primefaces calendar element?
我在表单中检测未保存的数据,以便在用户离开页面时发出警告。到目前为止,这适用于除primefaces日历元素之外的所有元素。
目前,我的方法与这个答案有关。但这对日历元素不起作用。我发现更改侦听器通常不适用于编程设置的值。也许这就是我问题的原因。因此,我尝试实现我自己非常简单的"更改侦听器",将一个点击并模糊的侦听器注册到我的所有日历元素中。在点击监听器中,我临时保存日历元素的当前值。在模糊侦听器中,我将保存的值与当前值进行比较。但这种方法不起作用,因为我无法在blur监听器中获得日历元素的更改值。我试图通过几种方式获得价值:
$(this).val();
this.value;
$(this).html();
$(this).attr('value');
但在每种情况下,我都会得到旧的价值观。所以我认为"简单的改变监听器"的方法不起作用。
我的素数面版本是3.4.2。
JSF实现(可能不相关)是:Mojarra 2.1.6
我对素数面一无所知,但它使用的是jquery ui日历。因此,您可以使用它的onSelect选项来检测更改。
$('.hasDatepicker').each(function() {
var onSelect = $(this).datepicker('option', 'onSelect');
$(this).datepicker('option', 'onSelect', function() {
// some change happend here, set your flag that the form is dirty e.g.
setConfirmUnload(true);
// we call the original onSelect to not break the primefaces ajax change event
if(onSelect) { return onSelect.apply(this, arguments); }
});
});
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- JavaScript打印功能使日历停止工作
- 在函数中添加数组元素的数值
- 在使用日历的产品页面上的 magento 中获取“类型错误:触发器元素为空”错误
- 如何在外部元素掉落的基础上更改背景颜色's id:完整日历
- 如何将事件处理程序添加到Google日历页面上动态添加的元素中
- 如何检测primefaces日历元素的变化
- jQuery在动态生成的日历元素上点击事件
- 如何在日历中添加日程元素
- 获取日历中可拖放元素的开始和结束日期
- 用于选择日期日历元素的触发按钮
- Html5输入元素"日期"-如何显示日历元素