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

如何将Bootbox弹框的确认/取消按钮替换为是/否选项?

核心问题说明

你当前封装的confirmClaimMessage函数中使用的是bootbox.confirm的最简传参模式,仅支持传入提示文本和回调函数,无法识别自定义按钮配置,因此你写的目标配置一直没有生效。

调整方案

方案1:保留现有封装(适合多处复用confirm弹框的场景)

第一步修改confirmClaimMessage函数定义,将其改为对象传参模式,支持传入自定义按钮文本:

function confirmClaimMessage(text, confirmText, cancelText, callback) {
    bootbox.confirm({
        message: text,
        buttons: {
            confirm: {
                label: confirmText                 
            },
            cancel: {
                label: cancelText                   
            }
        },
        callback: function (result) {
            callback(result);
        }
    });
}

第二步修改函数调用逻辑,传入你对应的资源字段:

$scope.saveForLaterClick = function (e) {
    confirmClaimMessage(
        $scope.ResourceData.RenewalProductAreYouSureWantToContinueText,
        $scope.ResourceData.PoppupYesText,
        $scope.ResourceData.PoppupNoText,
        function (e) {
            if (e) {
                window.open("#/Renewal", "_self");
            }
        }
    );
}

方案2:直接替换原有逻辑(不需要复用confirmClaimMessage的场景)

直接把$scope.saveForLaterClick的原有调用替换为你期望的实现写法即可,不需要走原有封装:

$scope.saveForLaterClick = function (e) {
    bootbox.confirm({
        message: $scope.ResourceData.RenewalProductAreYouSureWantToContinueText,
        buttons: {
            confirm: {
                label: $scope.ResourceData.PoppupYesText                   
            },
            cancel: {
                label: $scope.ResourceData.PoppupNoText                    
            }
        },
        callback: function (e) {
            if (e) {
                window.open("#/Renewal", "_self");
            }
        }
    });
}

注意事项

以上写法仅适用于Bootbox 4.0及以上版本,如果你使用的是更早的版本,需要先升级Bootbox到兼容版本再调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:15:04