在检查表单更改的项目上工作。我很难删除用户提交表单时发生的变化。关于提交和jquery的问题
$(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;
});
});
})
那么你的问题是什么?此外,1)您发布的代码不会尝试“删除”(我认为您的意思是“撤消”)对表单所做的任何更改 - 它似乎试图自行跟踪更改; 2)变化事件不会触发文本输入,只能在您在预设值(选择,复选框等)之间切换的输入上触发; 3)你的beforeunload事件处理程序返回一个值,但没有任何东西会收到这个返回值。大概你打算取消这个活动,然后把这个信息传达给用户。 – Utkanos
忽略textarea问题,我试图通过页面上的每个表单循环,并将变量changes_made设置为false - 另一种方法是在相同的地方删除beforeunload。 – mosi86
无法重现问题..请参阅http://jsfiddle.net/J9nJe/4/,尝试刷新页面并查看您的控制台没有任何反应输入smthing然后刷新,您将看到消息记录在控制台中.. – Baz1nga