我尝试使用kartik-v
小部件之一的yii2-dialog
创建自定义对话框。我想创建一个只有一个按钮的对话框:Statistics
。因此,使用演示中提供的文档,我编写了以下代码。
问题是,我得到的对话框有两个按钮,而不是一个按钮,并且我无法摆脱OK按钮。
我的问题是:有没有办法用一个按钮创建一个自定义的对话框呢?如果可能的话,我该如何做到这一点呢?
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);
这就是我所得到的:
发布于 2018-06-08 03:59:12
您需要使用选项,根据文档,要将配置选项设置为引导对话框的默认值(适用于useNative
为false
时)。在显式设置为true
之前,useNative
的默认值为false
。
将您的Dialog
定义更新为下面,并覆盖dialogDefault
选项中的buttons
属性,因为该插件在默认情况下设置ok
和cancel
按钮。
echo Dialog::widget ( [
'libName' => 'krajeeDialogCust' ,
'overrideYiiConfirm' => false ,
'dialogDefaults' => [
Dialog::DIALOG_OTHER => [
'buttons' => ''
]
] ,
https://stackoverflow.com/questions/50743657
复制相似问题