提交和jquery的问题

时间:2012-06-25 20:24:52

标签: javascript jquery submit onsubmit

处理检查表单更改的项目。我无法删除当用户提交表单时已发出警报的更改。

$(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 个答案:

答案 0 :(得分:0)

如果您希望还原用户所做的任何更改,则需要存储表单的原始内容。这样,您可以将旧表单内容与新内容进行比较,而不是等待更改事件,并在必要时进行替换。

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