检测是否已对输入表单进行更改

时间:2014-03-18 01:27:26

标签: javascript php jquery field

我有一个Jquery&的输入表单。 PHP我想要存档的是,如果用户对表单进行了任何更改,他们会尝试离开页面弹出一条消息,说明是否要退出并放弃更改或保留并首先保存更改?

我如何归档这个想法我做了,但我现在正在做的是检查字段中是否有数据但是我正在使用值='' HTML中的功能以获取数据库中的当前设置。

如果尚未按下提交,则仅运行此功能。

1 个答案:

答案 0 :(得分:2)

1创建一个标志,指定是否更改了某些内容:

var changes = false;

2将事件监听器绑定到将更改设置为true的每个输入和textarea:

$('textarea,input').on('keypress change input', function() {
    changes = true;
});

3将事件监听器绑定到onsubmit,将更改设置为false:

$('form').on('submit', function () {
    changes = false;
});

4将事件监听器绑定到onbeforeunload,如果有更改,则返回问题:

$(window).on('beforeunload', function () { 
    if (changes) return "Do you really want to leave?"; 
});

JSFiddle上的演示:http://jsfiddle.net/TimWolla/VYKeu/