Javascript 如何触发Yii2确认对话框
我在Javascript 如何触发Yii2确认对话框,javascript,php,jquery,yii2,Javascript,Php,Jquery,Yii2,我在GridView上有一个自定义action列,试图调用yii。使用数据确认功能确认删除操作,但未显示对话框 [ 'format'=>'html', 'content'=>function($data) { $btn = ButtonDropdown::widget([ 'label' => 'Action', 'options' => ['class'=>'btn btn-sm btn-primary dropdown-toggle',
GridView
上有一个自定义action列
,试图调用yii。使用数据确认功能确认删除操作,但未显示对话框
[
'format'=>'html',
'content'=>function($data) {
$btn = ButtonDropdown::widget([
'label' => 'Action',
'options' => ['class'=>'btn btn-sm btn-primary dropdown-toggle', 'type'=>'button'],
'dropdown' => [
'options' => ['class'=>'dropdown-menu action', 'role'=>'menu'],
'items' => [
'<li><a href="'.Url::to(['details','id'=>$data->id]) .'"><i class="fa fa-pencil"></i> Details</a></li>',
'<li><a href="'. Url::to(['edit', 'id' => $data->id]) .'"><i class="fa fa-eye"></i> Edit</a></li>',
'<li role="presentation" class="divider"></li>',
'<li><a data-method="post" data-confirm="Are you sure ?" href="'.Url::to(['delete', 'id' => $data->id]).'"><i class="fa fa-trash"></i> Delete</a></li>',
],
],
]);
return $btn;
},
],
[
'格式'=>'html',
'content'=>函数($data){
$btn=按钮下拉::小部件([
“标签”=>“操作”,
'选项'=>['class'=>'btn btn sm btn主下拉切换','类型'=>'按钮'],
“下拉列表”=>[
'选项'=>['class'=>'下拉菜单操作','角色'=>'菜单'],
'项目'=>[
“”,
“”,
“”,
“”,
],
],
]);
返回$btn;
},
],
但当我尝试添加链接而不下拉时,它会起作用
[
'format'=>'html',//raw, html
'content'=>function($data) {
$btn ='<a data-method="post" data-confirm="Are you sure ?" href="'.Url::to(['delete', 'id' => $data->id]).'"><i class="fa fa-trash"></i> Delete</a>';
return $btn;
},
],
[
'format'=>'html',//raw,html
'content'=>函数($data){
$btn='';
返回$btn;
},
],
我应该使用linkOtions表单项
[
'format'=>'html',
'content'=>function($data) {
$btn = ButtonDropdown::widget([
'label' => 'Action',
'options' => ['class'=>'btn btn-sm btn-primary dropdown-toggle', 'type'=>'button'],
'dropdown' => [
'options' => ['class'=>'dropdown-menu action', 'role'=>'menu'],
'items' => [
['label' => 'Details', 'url' => ['details','id'=>$data->id],
'linkOptions' => ['class'=>'fa fa-pencil'],],
['label' => 'Edit', 'url' => ['edit','id'=>$data->id],
'linkOptions' => ['class'=>'fa fa-eye'],],
['label' => '<span role="presentation" class="divider"></span>'],
['label' => 'Delete', 'url' => ['delete','id'=>$data->id],
'linkOptions' => ['class'=>'fa fa-trash' , 'data' => [
'confirm' => 'Are you sure ?',
'method' => 'post',
]],],
],
],
]);
return $btn;
},
],
[
'格式'=>'html',
'content'=>函数($data){
$btn=按钮下拉::小部件([
“标签”=>“操作”,
'选项'=>['class'=>'btn btn sm btn主下拉切换','类型'=>'按钮'],
“下拉列表”=>[
'选项'=>['class'=>'下拉菜单操作','角色'=>'菜单'],
'项目'=>[
['label'=>'Details','url'=>['Details','id'=>$data->id],
“链接选项”=>[“类”=>“铅笔”],],
['label'=>'Edit','url'=>['Edit','id'=>$data->id],
“链接选项”=>[“类”=>“眼睛”],],
['label'=>''],
['label'=>'Delete','url'=>['Delete','id'=>$data->id],
“链接选项”=>[
'确认'=>'你确定吗?',
'方法'=>'发布',
]],],
],
],
]);
返回$btn;
},
],
您可以添加这样的链接
<?php echo Html::a(Yii::t('backend', 'Delete'), ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => Yii::t('backend', 'Are you sure you want to delete this item?'),
'method' => 'post',
],
]) ?>
这是因为您使用的是
'format'=>'html'
选项。html格式化程序使用HTMLPurifier,它去除了数据属性
请改用
'format'=>'raw'
。您好,谢谢您的改进,但是确认对话框仍然没有出现。请在grdiview中显示操作的所有代码列部分。。您在B中显示的部分不足以进行更好的评估。如果删除数据确认数组周围的方括号,则解决方案确实有效,因此它是:'data'=>['confirm'=>'确定吗?','method'=>'post',]