弹出确认框[重复]

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 ?';
    
;

【讨论】:

以上是关于弹出确认框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

删除文件时没有弹出确认提示框

前端开发之弹出框系列教程二:Confirm确认框

php怎样实现点击删除时弹出输入框输入密码确认后再删除?

Java确认框的弹出

确认框的使用。弹出一个确认框,Ajax提交一个请求,刷新页面。

mui消息弹出确认框