离开页面时提示是否保存页面修改内容的简单实现
在很多系统中如果我们修改了某些信息,没有保存就离开当前的页面,系统通常会提示“信息发生变化,是否要保存”等;比如当你改变了QQ中的个人基本资料, 没有点“确认”或“应用”按钮,而是直接“取消”,系统会提示“您已经对设置做了修改,是否保存?”这类友好的提示在客户体验上为软件/系统增色不少,那 么这类功能究竟如何实现呢?下面介绍一种简单的方式,即通过JS来控制,看下面的代码:
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
var changeFlag=false;
//标识文本框值是否改变,为true,标识已变
$(document).ready(function(){
//文本框值改变即触发
$("input[type='text']").change(function(){
changeFlag=true;
});
//文本域改变即触发
$("textarea").change(function(){
changeFlag=true;
});
});
//离开页面时保存文档
window.onbeforeunload = function() {
if(changeFlag ==true){
//如果changeFlag的值为true则提示
if(confirm("页面值已经修改,是否要保存?")){
//处理信息保存...
alert("即将执行保存操作...");
}else{
//不保存数据...
alert("不保存信息...");
}
}
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<form action="">
帐号:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"/><br/>
备注:<textarea rows="3" cols="17"></textarea>
<input type="submit" value="提交"/>
</form>
</body>
</html>