在用 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層