弹出确认框[重复]
Posted
技术标签:
【中文标题】弹出确认框[重复]【英文标题】:Pop up a confirm box [duplicate] 【发布时间】:2014-02-09 09:00:59 【问题描述】:我的项目是使用 jquery 和 html 构建的单页站点。
在我的项目中,我有很多创建和更新表单,这些表单是通过显示和隐藏 div、元素加载和删除 html 来管理的。
我想在我的项目中添加一个功能,只要离开创建或更新页面就会弹出一个确认框。
我的意思是当用户正在创建某些东西并且他点击菜单栏(有意或错误地)然后应该弹出一个确认框说
你确定要退出吗?
我试过了
window.onbeforeunload
但它对我不起作用。
现在元素被动态加载和删除,页面没有被重定向,因此我不能使用这个方法..
有什么建议吗?
【问题讨论】:
window.confirm: developer.mozilla.org/en-US/docs/Web/API/Window.confirm developer.mozilla.org/en-US/docs/Web/API/Window.confirm 你的答案是this post,请好好搜索:) 和Alert when browser window closed accidentally 但是我如何检查它是否正在创建或更新特定的东西? 【参考方案1】:您可以使用简单的提示,但要更花哨一些 - 几乎同样简单,请查看 JQuery 对话框:
http://jqueryui.com/dialog/
不过它需要 JQuery UI。
【讨论】:
jQuery + jQuery UI 用于基本的 window.confirm ?你不能是认真的。 @SilviuBurcea 为什么不呢,它看起来不错? Saurabh 可能还会将 UI 用于其他方面。 你没有带这么多资源来确认。如果你为这个微不足道的任务这样做,我想知道你有多少资源来完成一项严肃的任务。【参考方案2】:你必须在窗口卸载方法上触发一个对话框
$( window ).unload(function(e)
alert( "unload() called." );
// aa is any condition
if(a)
return true;
else
e.preventDefault();
);
从页面导航时调用 unload() 函数...
【讨论】:
.unload()
已弃用 @version : 1.8
。【参考方案3】:
第一个解决方案是使用 jQuery Dialog - http://jqueryui.com/dialog/ 另一种是使用javascript confirm() - http://www.w3schools.com/jsref/met_win_confirm.asp 但是使用 jQuery 对话框,您可以根据需要设置它(添加 css、更多按钮、标题等)。使用 Javascript Confirm(),您只能在对话框中选择事件和文本。
【讨论】:
【参考方案4】:window.onbeforeunload = function()
if( form.hasUnsavedChanges() === true ) // or other conditions you need
return 'Are you sure you want exit ?';
;
【讨论】:
以上是关于弹出确认框[重复]的主要内容,如果未能解决你的问题,请参考以下文章