从 kartik-v 自定义对话框中删除确定按钮

Remove OK button from kartik-v custom dialog

我尝试使用 yii2-dialog 创建自定义对话框,kartik-v 小部件之一。我想用一个按钮创建这个对话框:Statistics 所以,使用演示中提供的文档,我编写了下面的代码。

问题是我得到的对话框有两个按钮而不是一个,我无法摆脱确定按钮。

我的问题是:有什么方法可以使用带有单个按钮的 yii2-dialog 创建自定义对话框吗?如果可能的话,我怎样才能做到这一点?

use kartik\dialog\Dialog;
use yii\web\JsExpression;

echo Dialog::widget([
    'libName' => 'krajeeDialogCust',
    'overrideYiiConfirm' => false,
    'options' => [
        'size' => Dialog::SIZE_LARGE,
        'type' => Dialog::TYPE_SUCCESS,
        'title' => 'My Dialog',
        'message' => 'This is an entirely customized bootstrap dialog from scratch.',
        'buttons' => [
            [
                'id' => 'cust-btn-1',
                'label' => 'Statistics',
                'action' => new JsExpression("function(dialog) {
                    dialog.setTitle('Title 1');
                    dialog.setMessage('This is a custom message for button number 1');
                }")
            ],
        ]
    ]
]);

// button for testing the custom krajee dialog box
echo '<button type="button" id="btn-custom" class="btn btn-success">Custom Dialog</button>';

// javascript for triggering the dialogs
$js = <<< JS
$("#btn-custom").on("click", function() {
    krajeeDialogCust.dialog(
        "Welcome to a customized Krajee Dialog! Click the close icon on the top right to exit.",
        function(result) {
            // do something
        }
    );
});
JS;

// register your javascript
$this->registerJs($js);

这就是我得到的:

您需要使用 dialogDefaults 选项,根据文档将配置选项设置为 bootstrap 对话框的默认设置(当 useNativefalse 时适用). useNative 的默认值为 false,直到您明确设置为 true

将您的 Dialog 定义更新到下面,并覆盖 dialogDefault 选项中的 buttons 属性,因为插件设置了 okcancel 默认按钮。

echo Dialog::widget ( [
    'libName' => 'krajeeDialogCust' ,
    'overrideYiiConfirm' => false ,
    'dialogDefaults' => [
        Dialog::DIALOG_OTHER => [
            'buttons' => ''
        ]
    ] ,