You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootbox弹窗添加跳转按钮报错:button key btn1不允许,求排查方案

解决Bootbox弹窗自定义按钮报错的问题

嗨,我来帮你搞定这个问题!你遇到的Uncaught Error: button key btn1 is not allowed (options are ok)报错,原因很明确:bootbox.alert() 是专门的警告弹窗组件,它只允许使用默认的"ok"按钮键,不支持自定义按钮名称,所以你写的btn1、btn2这些键名就触发了错误。

正确的解决步骤:

  1. 替换弹窗类型:把bootbox.alert()换成bootbox.dialog(),因为dialog组件才支持完全自定义按钮配置。
  2. 修正跳转代码:你的window.open.href()写法不对,正确的跳转应该用window.open("目标网址")。
  3. 可选:优化按钮样式:可以给自定义按钮加上Bootstrap的样式类,让它看起来更协调。

修改后的完整代码:

let infoButton = $('<button/>', {
    'class': 'btn btn-info',
    'data-toggle': 'modal',
    'data-target': '#infoModal'
}).html('<i class="fas fa-info-circle fa-fw"></i>').on("click", function() {
    bootbox.dialog({
        title: "title",
        message: "text",
        buttons: {
            btn1: {
                label: "Button 1",
                className: "btn-primary", // 可选:添加Bootstrap样式类
                callback: function() {
                    window.open("http://www3schools.com");
                }
            },
            btn2: {
                label: "Button 2",
                className: "btn-secondary", // 可选:添加Bootstrap样式类
                callback: function() {
                    window.open("http://www3schools.com");
                }
            }
        }
    });
});

额外说明:

如果你只是想在alert弹窗里加一个跳转按钮,其实也可以保留alert,但只能修改默认的ok按钮的文本和行为,比如:

bootbox.alert({
    title: "title",
    message: "text",
    buttons: {
        ok: {
            label: "跳转按钮",
            callback: function() {
                window.open("http://www3schools.com");
            }
        }
    }
});

但这种方式只能有一个按钮,所以如果需要多个按钮,还是用dialog更合适。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:33:43