我正在编写一个表单,我需要一个像stackoverflow这样的功能:“你已经开始编写或编辑一个帖子”.
@H_404_2@我浏览了stackoverflow的代码,看看它们是如何做到的,但是我根本就不能适用于我的简单表单.这是他们对问题
function initNavPrevention(b) { if (b.which == "undefined") { return } var a = $("#wmd-input"); a.unbind("keypress",initNavPrevention); setConfirmUnload("You have started writing or editing a post.",a) }@H_404_2@其中一个功能触发了这个(我不知道c是什么):
if (c) { e.keypress(initNavPrevention) }@H_404_2@最后他们有setConfirmUnload(null);假设禁用它. @H_404_2@我的情况很简单我有一个页面,我加载了< form />通过AJAX,我想防止这种形式的加载离开页面而不点击提交按钮,或者如果用户点击取消,表单被禁用,并且预防将不会弹出. @H_404_2@有了这个代码,有人可以告诉我如何将它包含在我的网站上? @H_404_2@这是我的AJAX函数加载形式:
$("#projects_historics_edit_part_1").click(function(){ $("#ajax-loader").fadeIn('normal'); $.ajax({ url: BASE_URL + 'projects/ajax/get_historics_edit_part_1/' + PROJECT_ID,type: "POST",success: function(data) { $("div#projects_historics_part_1").html(data); $("#client").autocomplete(client_autcomplete_options); var inicofin = $("#initdate,#findate").datepicker(initdate_datepicker_options); } }); $("#ajax-loader").fadeOut("normal"); return false; });@H_404_2@先谢谢你!
解决方法
你可以这样使用
window.onbeforeunload
这样做:
window.onbeforeunload = function() { return 'Are you sure you want to navigate away from this page?'; };@H_404_2@所以在你的代码中,你可以把它放在$.ajax调用的成功回调中. @H_404_2@要取消确认,您可以这样做:
window.onbeforeunload = null;@H_404_2@另外,看到这个答案:How can I override the OnBeforeUnload dialog and replace it with my own?