我尝试使用yii2-dialog
小部件之一kartik-v
创建自定义对话框。我想用一个按钮创建这个对话框:Statistics
所以,使用演示中提供的文档,我编写了下面的代码。
问题是我得到的对话有两个按钮而不是一个,我无法摆脱OK按钮。
我的问题是:有没有办法使用带有单个按钮的yii2对话框创建自定义对话框?如果可能的话,我该怎样才能做到这一点?
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);
这就是我得到的:
答案 0 :(得分:1)
您需要使用dialogDefaults
选项,根据文档将配置选项设置为引导对话框的默认值(适用于useNative
为false
时)。在您明确设置为useNative
之前,false
的默认值为true
。
将Dialog
定义更新为以下内容并覆盖buttons
选项中的dialogDefault
属性,因为默认情况下插件会设置ok
和cancel
按钮。
echo Dialog::widget ( [
'libName' => 'krajeeDialogCust' ,
'overrideYiiConfirm' => false ,
'dialogDefaults' => [
Dialog::DIALOG_OTHER => [
'buttons' => ''
]
] ,