Bootbox.confirm可以同步工作吗?

2024-03-08

在aspx页面中,有一个像这样的asp:linkbutton:

<asp:LinkButton runat="server" ID="btExit" Text="Exit"
                OnClientClick="javascript:return confirmExit();" 
                EnableViewState="false" 
                OnClick="ExitButtonClick"></asp:LinkButton>

这是 JavaScript 函数:

<script type="text/javascript">
function confirmExit() {
    bootbox.confirm("Are you sure?", function (confirmed) {
        return confirmed;
    });
}
</script>

问题是,据我所知, bootbox.confirm 是异步工作的,并且后面代码上的 ExitButtonClick 函数是在不等待用户确认的情况下执行的。

我找到了一个有效的解决方案,使用隐藏按钮:

<asp:LinkButton runat="server" ID="btExit" Text="Exit"></asp:LinkButton>
<asp:Button runat="server" ID="btExitHidden" onclick="ExitButtonClick" style="display:none;" />

这是 javascript 部分:

<script type="text/javascript">
    $("#btExit").click(function (e) {
        e.preventDefault();
        bootbox.confirm("Are you sure?", function (confirmed) {
            if (confirmed) {
                $("#btExitHidden").click();
            }
        });
    });
</script>

我的问题是是否有一种更“漂亮”和“标准”的方式与 Bootbox.confirm 同步工作,而不使用隐藏按钮。


您可以通过以下方式创建自定义同步引导箱功能:

function ayncBootbox(message, cb = null) { // cb : function
        return new Promise(resolve => {
            bootbox.confirm({
                message: message,
                buttons: {
                    confirm: {
                        label: "Yes"
                    },
                    cancel: {
                        label: "No"
                    }
                },
                callback: cb ? result => cb(resolve, result) : result => resolve(result)
            })
        })
}

那么如果您需要做一些额外的事情,您可以通过传递自定义回调来调用它

var result = await ayncBootbox("message", (resolve, result) => resolve(result))

Or just

var result = await ayncBootbox("message")

PS:不要忘记将调用者函数设置为异步:),如果需要,您可以使用拒绝来扩展此代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bootbox.confirm可以同步工作吗? 的相关文章

  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 选中复选框时提交表单

    有没有办法在选中复选框时提交表单
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • jquery:当我在文档上附加一层时,如何重置文档滚动条?

    当我在文档上附加图层时 如何重置文档滚动条 例如 它就像 Facebook 页面 当您有一个很长的文档时 您需要向下滚动才能查看较旧的图像 帖子 当你点击照片时 滚动条发生了变化 从顶部开始 但文档页面根本不跳转 当关闭照片查看器图层时 滚
  • 使用多线程进行矩阵乘法?

    我应该使用线程将两个矩阵相乘 有两件事 当我运行程序时 我不断得到 0 我还收到消息错误 对于每个错误 它在粗体行上显示 警告 从不兼容的指针类型传递 printMatrix 的参数1 我尝试打印输出 还要注意 第一个粗体块 这是我解决问题
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • WebRTC:通道、轨道和流与 RTP SSRC 和 RTP 会话之间的关系

    来自 Mozilla 网站 https developer mozilla org en US docs Web API Media Streams API https developer mozilla org en US docs We
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • React Native - 跨屏幕传递数据

    我遇到了一些麻烦react native应用程序 我不知道如何跨屏幕传递数据 我意识到还有其他类似的问题在 SO 上得到了回答 但是这些解决方案对我来说不起作用 我正在使用StackNavigator 这是我的设置App js file e
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • 有没有非常轻的灯箱? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 char 绑定到枚举类型

    我有一段与此非常相似的代码 class someclass public enum Section START MID END vector section Full void ex for int i 0 i section
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o
  • jQuery:动态添加 DOM 元素时尝试将函数挂钩到 onclick,但它立即执行该函数

    我正在使用 jQuery 动态 我的意思是在运行时 向页面的 DOM 添加一个 span 元素 create add task button document createElement span attr id activityNameH

随机推荐

  • 如何重命名 android-debug.apk

    我正在使用 Cordova 5 1 1 和 ionic 框架来创建我的 android 但是 当我尝试构建 apk 时 为什么文件名始终是 android debug apk 有什么办法可以重命名吗 cordova 创建 hello com
  • 如何在每个页面的侧边栏中包含目录树

    我正在 Sphinx 中生成 html 文档 如何修改文档中每个 html 页面的侧边栏 以便它们包含目录树 默认情况下 目录树似乎只显示在master doc页面 并且仅在主区域而不是侧边栏 是否有捷径可寻 我将使用 readthedoc
  • Android studio 3.1 每次重建工程即可看到变化

    将我的 android studio 更新到版本 3 1 后 我遇到了一个问题 当我对代码进行一些更改时 然后启动执行 我会得到旧的代码执行 直到我重建项目或清理它并重试 那是问题吗 PS 这发生在我的旧项目中 我还没有尝试过新项目 我认为
  • scipy 中的修剪树状图(层次聚类)

    我有一个大约有 5000 个条目的距离矩阵 并使用 scipy 的层次聚类方法对矩阵进行聚类 我为此使用的代码是以下片段 Y fastcluster linkage D method centroid D distance matrix Z
  • git,在保留历史记录的同时移动/重命名文件的可靠方法

    我知道有 很多 现有问题看起来很相似 所以让我在问我的问题之前总结一下它们 答案是是否可以在 git 中移动 重命名文件并保留其历史记录 https stackoverflow com questions 2314652 is it pos
  • 使用 css 防止或禁用 div 中的自动图像调整大小(使用 bootstrap)

    我正在尝试显示图像的原始大小 通常它比包含它的 div 的宽度更大 在现代浏览器中 它会自动调整大小以适合父 div 即使当我使用overflow auto图像仍然会调整大小 那么 当外部 div 具有设定宽度时 如何防止图像大小调整呢 谢
  • 使用 MSBuild 和 CruiseControl .NET 构建和部署 VS2010 数据库项目

    我几乎拥有一个 NAnt 脚本来构建和部署 VS2010 数据库项目 但有一个错误阻碍了我 C Program Files x86 MSBuild Microsoft VisualStudio v10 0 TeamData Microsof
  • 一次性计算正弦和余弦

    我有一个科学代码 它使用同一参数的正弦和余弦 我基本上需要该参数的复指数 我想知道是否可以比分别调用正弦和余弦函数更快 而且我只需要大约 0 1 的精度 那么有什么方法可以找到默认的三角函数并截断幂级数以提高速度 我想到的另一件事是 有没有
  • OS X 中的 Bash 脚本绝对路径

    我正在尝试获取 OS X 上当前运行脚本的绝对路径 我看到很多回复都是为了readlink f 0 然而自从 OS X 以来readlink与 BSD 相同 只是不起作用 它适用于 GNU 版本 有没有现成的解决方案来解决这个问题 这三个简
  • Grails 3.1.1 - 当模型类扩展另一个 groovy 类时脏检查不起作用

    我有一个域类 它扩展了另一个具有相同名称但在不同库中的不同包中的常规类 问题是当我修改域类上的实例时 它没有被标记为脏 因此更改不会持久 我读到 grails 3 版本对脏检查有一些增强 这可能是一个错误或者我遗漏了一些东西 新对象可以正确
  • 从networkX中的随机游走中获取节点列表

    我是 networkX 的新手 我创建了一个图表 如下所示 G nx read edgelist filename nodetype int delimiter data weight float 其中边为正 但总和不等于 1 是否有一个内
  • “请检查 gdb 是否经过代码签名 - 请参阅 taskgate(8)” - 如何使用签名的自制软件代码安装 gdb?

    我在 osx 10 8 4 下 并使用自制程序安装了 gdb 7 5 1 动机是获得一个具有新功能的新 gdb 例如 with python 等 长话短说 当我在 c Eclipse 项目中运行调试时 我得到 Error in final
  • 复制 QMimeData 对象的正确方法

    我正在开发一个 Qt 应用程序来存储剪贴板中的所有内容 以便稍后可以恢复它 我的方法是检索QMime数据 http qt project org doc qt 4 8 qmimedata html来自QApplication clipboa
  • Mozilla firefox 不支持预加载

    我在预加载方面遇到问题 我厌倦了使用 html 中的预加载来预加载 css 表 谷歌浏览器支持 但火狐浏览器不支持
  • 如何检查 MongoDB 中是否存在密钥

    我正在尝试检查 MongoDB 集合中是否存在某个键 基本上 我需要将字符串数组映射到特定的键 如果该键存在 我想通过添加新值来更新列表 否则创建一个具有初始值的新键 如果添加新键 则最初只会添加 1 个值 我在网上找到了一些例子 尽管我无
  • Pandas 系列到字典的矢量化查找

    问题陈述 pandas 数据框列系列 same group需要根据两个现有列的值从布尔值创建 row and col 如果行中的两个单元格在字典中具有相似的值 相交值 则该行需要显示 Truememberships 否则为 False 无相
  • Prolog 中的否定作为失败是一种程序行为吗?

    我有一个关于否定即失败在 Prolog 语言中 这是一个理论性多于实践性的问题 因为我清楚这个例子是如何工作的 所以我有以下 Prolog 程序 Fatti che specificano quali esseri sono degli a
  • NFCISO15693Tag 自定义命令“缺少所需的权利”

    在iOS13测试版中 当我尝试使用 NFCISO15693Tag api 时customCommandWithRequestFlag customCommandCode customRequestParameters completionH
  • 如何在 Angular Material 中固定垫选择面板的位置

    我有一个使用 Angular Material 组件的项目 我想自定义 mat select 我想实现选择输入 其中 mat select panel 看起来像本机 html 选择中的下拉菜单 我仅使用 CSS 样式就取得了很好的效果 但有
  • Bootbox.confirm可以同步工作吗?

    在aspx页面中 有一个像这样的asp linkbutton