有些关键操作比如删除,我们在执行前一般先弹出来个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. bzoj 3339 Rmq Problem / mex

    题目 我的树状数组怎么那么慢啊 就是一道水题,我们考虑一下对于一个区间\([l,r]\)什么样的数能被计算 显然需要对于一个\(j\),需要满足\(j<l\)且\(nxt_{j}>r\), ...

  2. 关于numpy mean函数的axis参数

    import numpy as np X = np.array([[1, 2], [4, 5], [7, 8]]) print np.mean(X, axis=0, keepdims=True) pr ...

  3. 如何导出SHP文件中的点坐标?(ArcGIS10)

    行政区域坐标,网上流传较广的版本是包括海域的,假如你仅仅想要把陆地边界绘出,那么怎么办呢? 现在讲一下用arcgis 10从shp线.面文件中获取对应区域的坐标呢?(点图层忽略第一步) 首先用在arc ...

  4. 【CSS-移动端响应式布局详解】

    背景 移动端响应式布局开发主要方案有: 基于rem开发 基于媒体查询 基于弹性盒 基础概念 在讨论响应式布局知识前,先了解下移动端常用基础概念. 逻辑像素(CSS pixels) 浏览器使用的抽象单位 ...

  5. Xquery的初步学习(一次Lab作业的总结)

    Task 1: Open countries.xml, compose the following XQueries: 1. Return the area of Mongolia. 2. Retur ...

  6. Linux之CentOS7.5安装及克隆

    官网下载地址:https://www.centos.org/,点击Get CentOS Now,点击DVD ISO,选择本国资源Actual Country ,一般选择列表中第一行就可以下载. 这里我 ...

  7. 用file标签实现多图文件上传预览

    效果图: js 代码: <script> //下面用于多图片上传预览功能 function setImagePreviews(avalue) { var docObj = document ...

  8. Linux系统查找清理磁盘大文件

    本文主要介绍Linux系统磁盘使用空间不足时,如何查找大文件并进行清理的方法. 使用df-h检查一台服务器磁盘使用空间,发现磁盘已经使用了100%,其中/dev/mapper/vg_iavp-lv_r ...

  9. Msql浅析-基础命令(二)

    篇幅简介 一.Msql数据类型 1.整型 tinyint,  占 1字节 ,有符号: -128~127,无符号位 :0~255 smallint, 占 2字节 ,有符号: -32768~32767无符 ...

  10. 大数据Hadoop的HA高可用架构集群部署

        1 概述 在Hadoop 2.0.0之前,一个Hadoop集群只有一个NameNode,那么NameNode就会存在单点故障的问题,幸运的是Hadoop 2.0.0之后解决了这个问题,即支持N ...