Adf提供了一个相当有用的功能,就是当页面上有数据发生变化之后,当用户试图离开此页面的时候,会弹出"Uncommitted Data Warning"的消息,让用户确认是否真的要离开该页面。
但是,当页面上存在编辑控件的autoSubmit属性设置为true的时候,改变这个控件的值,然后试图离开该页面时,不会弹出消息确认。
原因是当autoSubmit属性设置为true时,当该控件的值发生改变后,就会以异步的方式自动把新值提交到服务器端(依次经过JSF默认的生命周期的六个阶段),
当这个异步请求完成之后,那么该控件客户端的值就不在保留了,而服务器端的值也被更新了,因此,该控件也就不再是Dirty的了。
所以这个时候,当你在点击浏览器上的后退按钮,离开该页面的时候,也不会提示"Uncommitted Data Warning"的消息了。
所以需要如下的JS代码:
markDirty = function(dirtyFieldId) {
return function(evt) {
var txtDirty = AdfPage.PAGE.findComponentByAbsoluteId(dirtyFieldId);
if (txtDirty != null) {
txtDirty.setValue("dirty");
}
}
}
然后在autoSubmit的空间中插入如下的client listener.
<af:clientListener type="valueChange" method="markDirty('txtLocalDirtyFlg')"/>
详细参见:https://forums.oracle.com/forums/thread.jspa?threadID=2125354&tstart=0
上述方法对没有任何绑定的页面有效(所有的数据源都是通过manage bean获取,而不是绑定AM data control的方式),对于使用绑定AM data control方式的页面,有时候需要加入下面的代码到Cancel按钮的标签中(可能的原因是绑定的data Control是作为Reference,而不是需要更新的Data Control,比如说,只是进行条件过滤的下拉列表):
checkUncommittedData = function(dirtyFieldId) {
return function(evt) {
var txtDirty = AdfPage.PAGE.findComponentByAbsoluteId(dirtyFieldId);
AdfPage.PAGE.setDataDirty(txtDirty.getValue() != null && txtDirty.getValue() != "");
}
}
<af:clientListener method="checkUncommittedData('pt1:txtLocalDirtyFlg')" type="click"/>
分享到:
相关推荐
12306AutoSubmit.user.js
资源来自pypi官网。 资源全名:autosubmit-3.0.0b16.tar.gz
资源来自pypi官网。 资源全名:autosubmit-3.2.0b3.tar.gz
语言:English 在设定的期限前20秒自动提交Google表单。 对于通过Google表单进行的在线测试很有用。 在设定的期限前20秒自动提交Google表单。 对于通过Google表单进行的在线测试很有用。
WJX_Autosubmit 问卷星自动提交,Python3版本,2020年8月仍有效。采用构建随机答案,不支持验证码。 目前github上的可用版本并不多,同时个人接触较多问卷星的问卷,便萌生了用Python3的爬虫来完成问卷的想法,同时...
湖州师范学院自动提交健康报告脚本 详情请移步至我博客
function autoSubmit(){ var form = document.forms[0]; var actionPath = "?mo=phone"; form.action = actionPath; form.submit(); return true; } [removed] 如果需要两个提交按钮,type=””的属性值一个高为”...
这是一款简单实用基于jQuery CSS3 html5实现的手机移动端入住日期和离店日期选择代码,手机端酒店预订日期选择日历... autoSubmit : false, inputTrigger : 'input_trigger1', theme : 'ta' }); [removed]
leetcode不能提交自动提交 LeetCode 用法: python3 autoSubmit . py s1 . ini 其中s1.ini是配置文件,手动输入: 想要的问题 函数签名 默认返回参数 运行此文件时,将创建一个 testcases 文件夹来保存用于该特定...
).warning.style.visibility = "visible"end ifend functionfunction posit_scroll2() if window.event.srcElement.className="text1" then posit=window.event.srcElement.innerHTML window....
autoSubmit: false }); 这使得这个项目有些过时了。 但是,如果您想要一个轻量级的XHR实现,而没有官方jQuery插件的所有其他功能,那么此项目非常适合您。 例子: 首先在服务器后端构建参数和签名(以确保安全)...
语言:English 自动完成令人难忘的信息表格,例如在英国网上银行上发现的那些 ...警告如果您是第一次设置帐户,建议避免AutoSubmit功能,直到您确信提交成功,重复失败的提交可能会锁定您的帐户。难忘的信息请求器将数
名称 Mojolicious :: Plugin :: Qaptcha-Mojolicious的jQuery QapTcha插件 概要 # Mojolicious $app->plugin('Qaptcha', { inbuild_jquery => 1, inbuild_jquery_ui => 1, ... autoSubmit => "true", qa
刺激轨自动保存 入门 一个自动提交Rails表单的Stimulus控制器。 :books: 文献资料 请参阅。 :male_sign::male_sign: 贡献 不要犹豫,通过修改或添加功能为项目做出贡献! 错误报告或请求请求是受欢迎的。...