Bootbox弹窗添加跳转按钮报错:button key btn1不允许,求排查方案
解决Bootbox弹窗自定义按钮报错的问题
嗨,我来帮你搞定这个问题!你遇到的Uncaught Error: button key btn1 is not allowed (options are ok)报错,原因很明确:bootbox.alert() 是专门的警告弹窗组件,它只允许使用默认的"ok"按钮键,不支持自定义按钮名称,所以你写的btn1、btn2这些键名就触发了错误。
正确的解决步骤:
- 替换弹窗类型:把
bootbox.alert()换成bootbox.dialog(),因为dialog组件才支持完全自定义按钮配置。 - 修正跳转代码:你的
window.open.href()写法不对,正确的跳转应该用window.open("目标网址")。 - 可选:优化按钮样式:可以给自定义按钮加上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
相关产品推荐
相关产品推荐

