我想为处理页面更改创建确认。例如gmail
,或其他许多其他网站都有一个系统,当您更改页面中的字段以及想要离开页面或清除表单输入时,该站点将创建一个确认对话框,帮助您保存所做的更改。忘记了。这是我的解决方案,但我想知道是否有更好的方法。该项目也是JSF项目并使用primefaces 3.4
解决方案:
1.
创建一个全局js变量
var isChanges = false;
- 将处理程序放在所有输入字段的 onchanges 方法上。
< p:inputText value="#{someMB.someValue}" id="id" onkeydown="isChanges=true"></p:inputText>
或
< p:selectOneMenu value="#{someMB.someValue}" id= "#{cc.attrs.id}" >
< p:ajax event="change" onsuccess="isChanges=true" />
</p:selectOneMenu>
等....
检测用户是否离开页面或清除表单输入:
< script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
if(isChanged && window.confirm("sometext")){
// Call servers save method
}
}
< /script>