【发布时间】:2014-03-31 16:16:11
【问题描述】:
我一直在使用bootbox.js 库,它是异步操作的,但我需要以同步方式使用它(例如,在提交表单之前放置一个“确认”窗口)。
我不想使用e.preventDefault() 取消事件,我想推迟操作,直到用户响应模态。目前该库不支持它,但我很好奇是否可以使用 Promise 模拟同步行为?
这是一个非常基本的示例,使用链接(而不是表单提交按钮,这是我的最终目标): http://plnkr.co/edit/5NovsuKTeQ7y6SKNTwWp?p=preview
【问题讨论】:
-
我认为你做的方式就是它应该做的方式。你的意思是因为你使用的是对话框而不是 html,所以它很难看?
-
@weeknie - 哪个方向?我使用第一个链接的方式,它不等待模态 - 这是我认为承诺可能有助于模拟第二个链接的同步性的地方。
-
您可以做的不是使用提交的表单,而是直接使用模态,当用户单击模态的“确认”时,您可以捕获数据并用它做你想做的事.或者你可以看看这个答案:stackoverflow.com/questions/1205044/…
-
有趣——所以你建议让页面上的按钮/链接/任何元素只调用模态,然后在模态中使 OK/Yes 按钮具有实际事件?我想我必须制作一个自定义对话框才能这样做,这就是为什么我希望使用承诺或其他方式来延迟默认操作。
-
这是一个适用于 bootbox https://stackoverflow.com/a/68394453/14697989 的工作解决方案
标签: javascript jquery promise