# 第四種 捕獲層彈窗
## 10.4.第四種 捕獲層彈窗
第一種頁面層彈窗由于所有關于彈窗內元素的操作都要寫在彈窗的success里面,
部分人可能不適應這種方式,所以介紹第四種捕獲層彈窗:
~~~
<!-- 表單彈窗,加display: none默認隱藏 -->
<form style="display: none;" id="modelRoleForm" lay-filter="modelRoleForm" class="layui-form model-form">
<input name="roleId" type="hidden"/>
<div class="layui-form-item">
<label class="layui-form-label">角色名</label>
<div class="layui-input-block">
<input name="roleName" class="layui-input" placeholder="請輸入角色名" lay-verType="tips" lay-verify="required" required/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">備注</label>
<div class="layui-input-block">
<textarea name="comments" placeholder="請輸入內容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item text-right">
<button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
<button class="layui-btn" lay-filter="modelSubmitRole" lay-submit>保存</button>
</div>
</form>
<!-- js部分 -->
<script>
layui.use(['layer', 'form', 'table', 'admin'], function () {
var $ = layui.jquery, layer = layui.layer, form = layui.form, table = layui.table,admin = layui.admin;
var formUrl;
// 渲染表格
var insTb = table.render({...});
// 添加
$('#btnAddRole').click(function () {
showEditModel();
});
// 表格工具條點擊事件
table.on('tool(tableRole)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'edit') { // 修改
showEditModel(data);
}
});
// 顯示編輯彈窗
function showEditModel(mRole) {
$('#modelRoleForm')[0].reset(); // 重置表單
form.val('modelRoleForm', mRole); // 回顯數據
formUrl = mRole ? 'role/update' : 'role/add';
admin.open({
type: 1,
fixed: true, // 加這個可解決沒有居中的問題
title: (mRole ? '修改' : '添加') + '角色',
content: $('#modelRoleForm') // 這里是重點,沒有.html()
});
}
// 表單提交事件
form.on('submit(modelSubmitRole)', function (data) {
layer.load(2);
$.post(formUrl, data.field, function (res) {
layer.closeAll('loading');
if (res.code == 200) {
admin.closeDialog('#modelRoleForm');
layer.msg(res.msg, {icon: 1});
insTb.reload();
} else {
layer.msg(res.msg, {icon: 2});
}
}, 'json');
return false;
});
});
</script>
~~~
與第一種的區別是form不用`<script>`包裹,加`style="display:none"`隱藏,
admin.open的content是$('#roleForm')而不是$('#roleForm').html(),
表單的提交事件可以直接寫在外面,而不用寫在彈窗的success里面。
>[danger] 捕獲層的弊端就是彈窗的頁面代碼最好是寫在body下面,不然樣式會被其他樣式影響。
- 更新日志
- 開始使用
- 導入項目
- 項目結構
- index.html結構說明
- 添加一個菜單
- common.js說明
- 修改默認配置
- ID命名規范
- index模塊
- 加載默認主頁
- 打開一個選項卡
- 關閉指定選項卡
- 清除Tab記憶
- 修改Tab標題
- 切換Tab自動刷新
- 側邊欄手風琴折疊
- admin模塊(基礎)
- 全部方法
- 彈窗相關方法
- 加載層loading
- ajax封裝
- 緩存操作putTempData
- 鎖屏功能
- ew-event事件綁定
- open彈窗事件
- logout事件
- admin模塊(進階)
- 文字提示
- 地圖選擇位置
- 裁剪圖片
- 動畫數字
- 經緯度轉換
- 深度克隆對象
- 判斷富文本是否為空
- 移除指定style
- 模板引擎
- 滾動到頂部
- 事件監聽
- 動態模板
- 公共樣式
- 公共類
- 組件樣式
- 表單彈窗
- 表格工具欄
- 垂直選項卡
- 徽章擴展
- 下拉樹單選
- fixed方式select
- 擴展組件(常用)
- 1.下拉菜單
- 快速使用
- 更多樣式
- 對任意元素使用
- 帶遮罩層
- 自定義下拉內容
- 控制顯示方向
- 在數據表格中使用
- 氣泡確認框
- 2.消息通知
- 快速使用
- 全部方法
- 參數列表
- 解決彈窗遮擋
- 3.級聯選擇器
- 快速使用
- 異步加載
- 自定義分隔符
- 搜索功能
- 省市區選擇
- 全部方法
- 全部參數
- 4.標簽輸入框
- 快速使用
- 全部參數
- 5.分割面板
- 快速使用
- 垂直分割
- 嵌套使用
- 6.環形進度條
- 快速使用
- 全部參數
- 自定義樣式
- 7.步驟條
- 快速使用
- 風格選擇
- 上一步下一步
- 禁止標題點擊
- 擴展組件(進階)
- 1.表單擴展tableX
- 全部方法
- 合并單元格
- 行綁定鼠標右鍵
- 后端排序
- 前端分頁排序
- 導出數據
- 導出全部、搜索
- 后端導出
- 2.表單擴展formX
- 驗證規則
- 擴展方法
- 渲染select封裝
- 驗證碼倒計時
- 獲取修改字段
- 3.打印插件
- 打印當前頁面
- 設置不打印元素
- 打印自定義內容
- 分頁打印
- 拼接html
- 4.鼠標右鍵
- 快速使用
- 自定義使用
- 動態元素綁定
- 5.數據列表dataGrid
- 快速使用
- 全部參數
- 分頁功能
- 加載更多功能
- 實例方法
- 自動渲染
- 6.文件選擇器
- 快速使用
- 全部參數
- 第三方插件
- 鼠標滾輪監聽
- 二維碼模塊
- 引導插件
- 剪貼板
- 視頻播放器
- 富文本編輯器
- 更多功能
- 主題功能
- 自定義擴展模塊
- 增加按鈕權限控制
- table統一設置headers
- 彈窗專題
- 第一種 頁面層彈窗
- 第二種 iframe彈窗
- 第三種 url方式彈窗
- 第四種 捕獲層彈窗
- 四種方式選擇指南
- admin.modelForm方法
- 參數傳遞方法詳解
- 刷新url方式彈窗
- 彈窗使用模板引擎
- 彈窗內組件不渲染
- 常見問題
- 后端生成側邊欄
- ajax加載側邊欄
- 多系統模式
- logo文字換行顯示
- 側邊欄全部展開
- 側邊欄折疊圖標放大
- 彈窗下拉框出現滾動條
- 彈窗寬度不能超出屏幕
- 表單文字出現換行
- select、radio不顯示
- 日期laydate不能顯示
- 彈窗打開后按enter無限打開
- 表單提交post變成了get
- 修改表格背景和邊框顏色
- 修改placeholder顏色
- IE數據表格緩存嚴重
- 使用parent.layer問題
- 表格打印太長列未換行
- 彈窗layer.js報錯404
- 表格請求去掉page和limit
- 側邊欄折疊卡頓
- 圖片表格點擊查看
- 常用實例
- 表格內switch獲取行數據
- 表格回顯復選框
- 表格工具列動態顯示
- 表單提交數組
- 重載表格重置排序
- laydte動態控制日期限制
- 下拉樹一些數據不可選
- 修改彈窗禁用輸入框
- 表格中下拉框數據動態
- 實現點擊后轉一圈
- 頁面下拉框數據動態
- 表格動態tool事件處理
- 表格復選框和序號列合并
- 表單提交帶文件上傳
- 單標簽模式加居中文字