关于layer.open() 弹框的使用
在用 layer.open() 追加渲染HTML的时候,完全看不到效果,皆因layui框架需要在最后用 form.render() 方法来渲染表单才可以看到效果,写法如下:
<script>
layui.use(['form','layer'],function(){
var form = layui.form;
var layer = layui.layer;
str = '<div class="layui-form layui-form-pane">';
str += "<label for='name' class='layui-form-label'>分类名称:</label><input maxlength=5 id='category_name' type='text' style='width:55%;height:36px;' value='"+ category_name +"'>";
str += '</div>';
var index = layer.open({
title:"编辑分类",
area:['325px'],
content:str,
btn:['确定','取消'],
yes:function(){
var name = $.trim($('#category_name').val());
$.post(
'/shopmenu/category_list',
{
name:name,
cid:cid,
type:3,
is_must:must2
},
function(data){
// console.log(data);return;
var data = $.parseJSON(data);
if(data.result){
layer.msg("更改成功", {icon: 6, time:3000});
location.href = "javascript:location.replace(location.href)";
}else{
layer.msg(data.msg, {icon: 7, time:3000});return;
}
}
);
},
btn2:function(){
layer.closeAll(index); //关闭当前窗口
}
});
// 渲染表单
form.render();
});
</script>
另外, layui框架弹窗的关闭方法走一波,,
关闭当前layer.open()打开的弹窗:
var index = layer.open({});//先赋值这个弹窗
layer.closeAll(index);
//关闭除父级外的子页面
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);//关闭当前页
parent.location.reload();//刷新父级页面
//window.parent.location.replace(location.href)//刷新父级页面
其他的, layer.closeAll(); //疯狂模式,关闭所有层 layer.closeAll('dialog'); //关闭信息框 layer.closeAll('page'); //关闭所有页面层 layer.closeAll('iframe'); //关闭所有的iframe层 layer.closeAll('loading'); //关闭加载层 layer.closeAll('tips'); //关闭所有的tips层
你的坚持 ------ 终将美好 ~