我如何让用户知道“如果他们尝试关闭浏览器窗口,还有剩余的更改要保存在表单上?”
我有一个包含几个字段的表单,现在如果用户更改了一些字段并单击浏览器窗口上的关闭按钮,我的脚本应该提醒他未保存的更改。我该如何实现?我已经进行了基本的表单验证,但似乎无法想到 window.close() 事件的解决方案。任何示例链接都会有所帮助。
最佳答案
那么你可以使用正文 onbeforeunload
或 onunload
。
<body onBeforeUnload="return(confirm('unsaved stuff'))">
以前从未使用返回来停止页面卸载,但它应该可以工作。
更新:
在网页的标题中使其成为全局变量:
<script type="text/javascript">
var formData = [];
function saveForm(){
var data = [];
for(var index = 1; index <= 3; index++){
data [index - 1] = document.getElementById("textfield_" + index).value;
}
return(data);
}
function unsavedData(){
var newFormData = saveForm();
for(var index = 0; index < 2; index++){
if(formData[index] != newFormData[index]){
return(confirm("Unsaved data, do you really want to exit?"));
}
}
return(true);
}
</script>
在正文中(当然):
<body onBeforeUnload="return(unsavedData())">
...
<form ... onSubmit="formData = saveForm()">
<input type="text" id="textfield_1">
<input type="text" id="textfield_2">
<input type="text" id="textfield_3">
/*form submit button*/
</form>
关于Javascript 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6209346/