我想创建一个处理页面更改的确认。例如,gmail
或其他许多其他网站都有一个系统,当您更改页面中的字段,并且当您想要离开页面或清除表单输入时,该站点将创建一个确认对话框,帮助您保存您忘记的更改。这是我的解决方案,但我想知道是否有更好的方法。该项目也是JSF项目并使用primefaces 3.4
的解决方案:
1.创建一个全局的js变量
var isChanges = false;
< p:inputText value ="#{someMB.someValue}" ID =" ID"的onkeydown =" isChanges =真">< / P:inputText的>
或
< p:selectOneMenu value ="#{someMB.someValue}" ID ="#{cc.attrs.id}" >
< p:ajax事件="改变"的onSuccess =" isChanges =真" />
< / p:selectOneMenu>
等......
检测用户是否离开页面或清除表单输入:
< script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
if(isChanged && window.confirm("sometext")){
// Call servers save method
}
}
< /script>
答案 0 :(得分:1)
在我的网络应用程序中,我这样做:
noHash
类noHash
类然后,当用户试图离开时,我重新计算哈希,如上所述,看看哈希值是否不同,如果是,我会在离开页面之前提示用户进行确认。
请注意,这是全部使用javascript完成的,因此独立于您的服务器端脚本语言。