-1

在检查表单更改的项目上工作。当用户提交表单时,我很难删除已发出警报的更改。

$(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; 
        });
    });
})
4

1 回答 1

0

如果您希望能够恢复用户所做的任何更改,则需要存储表单的原始内容。这样,您无需等待更改事件,只需将旧表单内容与新内容进行比较,并在必要时进行替换。

其他花絮:var在变量声明之前需要一个(否则变量最终会附加到窗口对象)。除非您的表单提交是一个 ajax 调用,否则将 changes_made 设置回 false 是没有意义的。该页面将重新加载,并且无论如何 changes_made 将再次为 false。

于 2012-06-25T20:32:41.680 回答