如果用户在包含表单的页面上,并且他们已编辑了某些内容,然后尝试导航到其他页面,我该如何通知他们?
人们如何做到这一点?
是计算所有输入字段的哈希并比较它们是否退出页面?
是否有页面卸载事件?
答案 0 :(得分:6)
我喜欢只提示用户他们是否真的改变了某些东西。像这样:
var changesMade = false;
function onDataChanged() {
changesMade = true;
}
$('input:text, textarea, select').change(onDataChanged);
$('input:checkbox, input:radio').click(onDataChanged);
$(window).bind('beforeunload', function() {
if (changesMade) {
return 'Changes have been made. Are you sure you want to leave the page?';
} else {
return null;
}
});
答案 1 :(得分:0)
onbeforeunload
事件:
$(window).bind('beforeunload', function() {
return 'Are you sure?';
});
在某些浏览器上显示消息,在其他浏览器上显示消息。它会在所有浏览器上显示一个带有Leave
和Stay
按钮的对话框(据我所知),以便用户可以选择。
答案 2 :(得分:0)
使用beforeunload
窗口事件。
$(window).bind('beforeunload', function() {
return confirm("Alert user");
});