有些关键操作比如删除,我们在执行前一般先弹出来个confirm确认窗口。

在Yii2中为一个操作添加confirm确认很容易。只需在链接出添加一个‘data-confirm' => '确实要添加?'属性。

Html::a('<i class="fa fa-plus"></i> 添加', ['create'],
[
'class' => 'btn btn-success btn-sm',
'data-confirm' => '确实要添加?'
]);

玄机隐藏在yii.js

美中不足的是,yii使用的是原生的confirm,有点丑。如果能使用bootboxJS提供的bootstrap样式的弹窗会更好看些。

实现起来也很容易,bootbox本身就一个js文件,只需引入进来,然后覆盖yii提供的conform方法即可。

先下载最新的bootbox.min.js文件,我是放到了\backend\web\js

新建一个BootboxjsAsset.php文件

<?php
/**
* Created by PhpStorm.
* User: mafeifan
* Date: 2016/06/04
* Time: 20:23
*/ namespace backend\assets; use yii;
use yii\web\AssetBundle; class BootboxjsAsset extends AssetBundle
{ public $sourcePath = '@backend/web/';
public $js = [
'js/bootbox.min.js',
];
public $depends = [
'yii\web\YiiAsset',
'backend\assets\BootstrapAsset',
]; public static function overrideSystemConfirm()
{
Yii::$app->view->registerJs('
yii.confirm = function(message, ok, cancel) {
bootbox.confirm(message, function(result) {
if (result) { !ok || ok(); } else { !cancel || cancel(); }
});
}
');
}
}

注意命名空间和bootbox.min.js的位置。

因为我想在后台全局覆盖confirm弹窗。

打开backend\views\layouts\main.php。添加如下代码。

use backend\assets\AppAsset;
use backend\assets\BootboxjsAsset;
AppAsset::register($this);
BootboxjsAsset::register($this);
BootboxjsAsset::overrideSystemConfirm();

大功告成,快试试效果吧。

PS : 覆盖的js代码是写在php文件中,也可写在js文件中。

参考:http://qiita.com/tanakahisateru/items/be28b7bed4566ce8fa99

Yii2 使用 bootboxJS美化confirm窗口的更多相关文章

  1. Yii2美化confirm

    在view中, <?= Html::a('删除', ['post/delete', 'id' => $post['id']],['data-confirm'=>'确定要删除吗?']) ...

  2. 浅谈Winform控件开发(一):使用GDI+美化基础窗口

    写在前面: 本系列随笔将作为我对于winform控件开发的心得总结,方便对一些读者在GDI+.winform等技术方面进行一个入门级的讲解,抛砖引玉. 别问为什么不用WPF,为什么不用QT.问就是懒, ...

  3. Yii2.0 URL美化

    1. 程序初始化注册文件,加入如下: 'urlManager' =>[ 'class' => 'yii\web\UrlManager', 'showScriptName' =>fal ...

  4. yii2.0 路由美化以及自定义设置

    在配置文件里修改: 如果把'enablePrettyUrl' => true,设为true那么你的gii就访问不到: 'rules' => [                 '<c ...

  5. yii2.0 url美化-apache服务器

    //配置内容 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => false, //不启用严格 ...

  6. [路由] -- Yii2 url地址美化与重写

    转载:http://blog.csdn.net/lmjy102/article/details/53857520

  7. Yii2.0 URL美化功能Nginx与Apache配置文件

    NGinx: location / { index index.html index.htm index.php; try_files $uri $uri/ /index.php$is_args$ar ...

  8. Yii2实现即可以美化路由访问又可以原始路由访问

    1. 本地环境 nginx version: nginx/1.11.1 PHP 7.1.0-dev (cli) mysql Ver 14.14 Distrib 5.7.22, for Linux (x ...

  9. 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...

随机推荐

  1. 【NOIP2017】宝藏

    题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 \(n\) 个深埋在地下的宝藏屋, 也给出了这 \(n\) 个宝藏屋之间可供开发的 \(m\) 条道路和它们的长度. 小明决心亲自前往挖掘 ...

  2. servlet的生命周期详解

    一.servlet生命周期原理解析 1.Servlet生命周期分为三个阶段: (1)初始化阶段  调用init()方法 (2)响应客户请求阶段 调用service()方法 (3)终止阶段 调用dest ...

  3. java反序列化Commons-Collections1分析

    AnnotationInvocationHandler关键类 Commons-Collections1也是利用InvokerTransformer类中的transform方法反射机制执行命令.实验用的 ...

  4. 【Git】将项目下的.git目录隐藏

    将项目下的.git目录隐藏 在apache配置文件httpd.conf中添加配置: <Directory "${INSTALL_DIR}/www/mypro/.git"> ...

  5. 【转】 Tomcat+redis+nginx配置

    为客户开发的一个绩效系统,采用了java web的开发方式,使用了一些spring mvc, mybatis之类的框架.相比于oracle ebs的二次开发,这种开发更加灵活,虽然和ebs集成的时候遇 ...

  6. PAT——1063. 计算谱半径

    在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界.换言之,对于给定的n个复数空间的特征值{a1+b1i, ..., an+bni},它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模. ...

  7. PAT——1060. 爱丁顿数

    英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E.据说爱丁顿自己的E等于87. 现给定某人N天的骑车距离,请你算出对应的爱 ...

  8. C++设计一个不能被继承的类

    1. 方法一 将构造函数和析构函数设置为私有函数,重新定义公有的静态函数来创建和释放类. #include "stdafx.h" #include <iostream> ...

  9. ovs加dpdk出现EAL No free hugepages reported in hugepages-1048576kB

    问题 打开ovs的日志: cat /etc/local/var/log/openvswitch/ovs-vswichd.log 其中一条显示: 2018-07-30T02:12:05.443Z|000 ...

  10. 修改ubuntu计算机名

    修改计算机名下: -$sudo gedit /etc/hostname -$sudo gedit /etc/hosts