处理检查表单更改的项目。我无法删除当用户提交表单时已发出警报的更改。
$(document).ready(function(){
changes_made = false;
$('input, select, textarea').on('change', function() {
changes_made = true;
});
$(window).bind('beforeunload', function() {
if(changes_made) { return 'You have made changes on this page.'; }
});
$('form').each(function() {
$(this).on('submit', function() {
changes_made = false;
});
});
})
答案 0 :(得分:0)
如果您希望还原用户所做的任何更改,则需要存储表单的原始内容。这样,您可以将旧表单内容与新内容进行比较,而不是等待更改事件,并在必要时进行替换。
其他花絮:在变量声明之前需要var
(否则变量最终附加到窗口对象)。除非你的表单提交是ajax调用,否则将changes_made设置为false是没有意义的。无论如何,页面将重新加载并且changes_made将再次为false。