网站首页 > 知识剖析 正文
弹出层提交表单的js
Bash
layer.open({
type : 2,
title : '添加权限',
area : [ '500px', '450px' ],
offset : '160px',
shadeClose : true, // 点击遮罩关闭
btn : ['保存','取消'],
content : 'permission_add.html',
success : function(layero, index) { // 成功弹出后回调
},
yes : function(index, layero) { // 保存按钮回调函数
// 获取iframe层的body
var body = layer.getChildFrame('body', index);
// 找到隐藏的提交按钮模拟点击提交
body.find('#permissionSubmit').click();
},
btn2 : function(index, layero) { // 取消按钮回调函数
layer.close(index); // 关闭弹出层
}
});
弹出层表单中隐藏的提交按钮代码
Bash
<div class="layui-form-item" hidden>
<div class="layui-input-block">
<button id="permissionSubmit" class="layui-btn" lay-submit lay-filter="*">
保存
</button>
</div>
</div>
iframe页面js内容
<script>
// 初始化表单
layui.use([ 'form', 'layer' ], function() {
var form = layui.form, layer = layui.layer, $ = layui.$;
// 更新页面渲染,否则会造成页面加载元素不完整
form.render();
// 自定义表单验证
form.verify({
name : function(value, item) { // 验证功能名
var defaultName = $('#defaultName').val(); // 默认的name
if (value !== defaultName || 'default' === defaultName) { // 判断功能名字是否发生改变
if (!new RegExp("^[a-zA-Z0-9|\u4e00-\u9fa5\]{2,10}#34;)
.test(value)) {
return '权限名必须是2-10位中英文或者数字的字符';
} else {
code = 0; // 用来判断功能名是否存在
$.ajax({
type : 'POST',
url : 'queryNameIsExist.do',
data : {
name : value
},
async : false,
dataType : 'json',
success : function(data) {
if (!data.success) { // 功能名已经存在
code = 1;
}
},
error : function(data) {
code = 2;
}
});
// 根据code判断角色名是否存在
if (code == 1) {
return '功能名已经存在,请更换';
} else if (code == 2) {
return '出现异常,请联系管理员';
}
}
}
},
url : function(value, item) { // 校验功能url
var defaultUrl = $('#defaultUrl').val(); // 默认的url
if (value !== defaultUrl || 'default' === defaultUrl) { // 判断功能url是否发生改变
if (!new RegExp("^[a-zA-Z0-9/]{5,30}#34;).test(value)) {
return 'url必须是5-30位英文和/组成的字符串';
} else {
code = 0; // 用来判断功能url是否存在
$.ajax({
type : 'POST',
url : 'queryUrlIsExist.do',
data : {
name : value
},
async : false,
dataType : 'json',
success : function(data) {
if (!data.success) { // 功能url已经存在
code = 1;
}
},
error : function(data) {
code = 2;
}
});
// 根据code判断功能url是否存在
if (code == 1) {
return '功能url已经存在';
} else if (code == 2) {
return '出现异常,请联系管理员';
}
}
}
},
permission : function(value, item) { // 校验权限字符串
var defaultPermission = $('#defaultPermission').val(); // 默认的权限字符串
if (value !== defaultPermission
|| 'default' !== defaultPermission) { // 判断功能权限字符串是否发生改变
if (!new RegExp("^[a-zA-Z0-9]{2,20}#34;).test(value)) {
return '权限字符串必须是2-20位英文字符';
} else {
code = 0; // 用来判断功能权限字符串是否存在
$.ajax({
type : 'POST',
url : 'queryPermissionIsExist.do',
data : {
name : value
},
async : false,
dataType : 'json',
success : function(data) {
if (!data.success) { // 功能权限字符串已经存在
code = 1;
}
},
error : function(data) {
code = 2;
}
});
// 根据code判断功能权限字符串是否存在
if (code == 1) {
return '功能权限字符串已经存在';
} else if (code == 2) {
return '出现异常,请联系管理员';
}
}
}
}
});
// 监听form表单提交
form.on('submit(save)', function(data) {
$.ajax({
type : 'POST',
url : 'createResource.do',
data : {
name : $('#name').val(),
url : $('#url').val(),
type : $('input[name]:checked').val(),
parentId : $('#parentId').val(),
permission : $('#permission').val(),
available : $('#available').is(':checked') === true ? 1 : 0
},
dataType : 'json',
success : function(data) {
// 成功提示框
parent.layer.msg('添加成功', {
icon : 6,
});
parent.layer.closeAll('iframe'); //关闭弹框
},
error : function(data) {
// 异常提示
parent.layer.msg('出现网络故障', {
icon : 5
});
parent.layer.closeAll('iframe'); //关闭弹框
}
});
return false;
});
});
</script>
我们只需要在保存按钮的回调函数中获取到iframe页面的隐藏的提交按钮然后使用click()事件就可以提交弹出iframe层的表单了,表单验证和表单提交都在iframe页面的js中,iframe页面的js中需要注意的是弹窗操作需要操作父页面的layer来进行
猜你喜欢
- 2025-06-13 热血动漫番太好看了!用Python爬取了1T的动漫,内存都爆了
- 2025-06-13 前端实用技术分享—用Vue实现打印指定区域
- 2025-06-13 JSONP安全攻防技术(web安全攻防)
- 2025-06-13 七爪源码:在 Anvil 应用程序中嵌入网页的 3 个简单步骤
- 2025-06-13 IDM、Portal 、ESB如何与钉钉进行集成
- 2025-06-13 填坑:frame和iframe 你所不知道的!
- 2025-06-13 页面渲染优化的几点建议(页面渲染的顺序)
- 2025-06-13 让我们来看看常见的网页挂马方式(网站挂马一般在什么位置)
- 2025-06-13 【Python大语言模型系列】使用dify云版本开发一个智能客服机器人
- 2025-06-13 Phantomjs怎样优雅屏蔽掉iframe的影响?
- 最近发表
-
- Zion无代码,小程序授权和解绑,无代码开发的关键
- 韦德二儿子“变”女儿,韦德支持儿子,与魔术师约翰逊经历相同
- 新鞋速报|Swoosh 面世 50 年!Nike Waffle Trainer 2致敬 Nike 的起源
- 李宁韦德之道2低帮版"踏冰" 球鞋曝光
- Zion又壮了!首秀顶翻1.9亿内线!英格拉姆单臂隔扣
- 音乐手游《zion载音》迎更新 钢琴白发少女免费带回家
- AI 应用赚钱工具哪家强?Coze 和 Zion 对比分析
- 韦德12岁次子完成变性手术,心情雀跃身姿妖娆
- 韦德晒全家福,他穿浴袍像中东土豪,二儿子扎雅比尤尼恩还性感
- 每日NBA球星上脚球鞋「5月12日」(近期nba球星上脚球鞋)
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)