在我的Web应用程序中,我有一个包含多个输入值的页面,并且如果用户尝试使用未保存的信息输入,则确认用户想要离开页面(类似于退出Microsoft Word时的提示)未保存的文档更改)。我想显示一条自定义信息:“您已经进行了未保存的更改。您真的希望离开页面吗?”我怎么能这样做呢?
答案 0 :(得分:2)
您需要在所有输入上使用change
事件来检测用户所做的任何更改。此事件不会冒泡,因此您需要单独将其附加到每个输入。然后,您需要使用beforeunload
对象的window
事件来提示用户。
<script type="text/javascript">
var anythingEdited = false;
function inputChanged() {
anythingEdited = true;
}
window.onbeforeunload = function(evt) {
if (anythingEdited) {
evt = evt || window.event;
evt.returnValue = "You have edited something. If you click OK, your changes will be lost.";
}
};
</script>
First name: <input type="text" id="firstName" name="firstName" onchange="inputChanged();">