关于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层 

 

posted @ 2018-09-20 17:08  一粒小米-博客  阅读(46664)  评论(0编辑  收藏  举报