当访问者点击“取消”或尝试返回填充的文本字段时,我有以下功能来显示警报。该功能整体运作完美但不是我点击提交时。当我按下按钮时,警报会显示,我不希望这样。
var changed_flag = 0;
$('input').change(function() {
changed_flag = 1;
});
window.onbeforeunload = function() {
if(changed_flag) {
return 'You haven't saved your work!'
}
};
我知道我应该编辑$('input').change(...
并添加input[type="submit"]
,但我不知道如何以及在何处。有谁知道如何解决这个问题?
提前致谢。
答案 0 :(得分:2)
尝试
$('form').submit(function() {
changed_flag = 0;
});
答案 1 :(得分:0)
$('form').submit(function() {
$(window).unbind('beforeunload');
});
另外,您可以执行changed_flag = 0
答案 2 :(得分:0)
只需让您的提交按钮删除该事件或将changed_flag设置回0。
<input type="submit" onmousedown="changed_flag = 0" />
编辑:第二个想法是将此代码放在你的onsubmit处理程序中,以防表单以其他方式提交(例如按Enter或通过其他函数)。