【发布时间】:2011-05-02 19:32:36
【问题描述】:
我正在尝试检测输入字段的更改,以警告用户表单上未保存的更改。我在字段上使用 onchange 事件来记录表单已更改。然后,如果需要保存,我将使用 beforeunload 窗口事件来阻止用户离开页面。问题是所有主要浏览器上的后退按钮都会让活动输入触发更改事件。我该如何解决这个问题?
以下是我正在使用的测试文件。我希望在用户编辑输入字段然后立即返回时触发警报。编辑文本然后点击正文会触发更改,但这还不够。
starteditor.html
<!doctype html>
<html>
<head>
</head>
<body>
<a href="editor.html">Click me</a>
</body>
</html>
editor.html
<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("form").delegate("input", "change", function () { alert("I changed") });
});
</script>
</head>
<body>
Edit text then click the browsers back button.
<form>
<input type="text" />
</form>
</body>
</html>
【问题讨论】:
标签: jquery cross-browser onchange dom-events back-button