场景是这样的,通过layer打开一个弹窗,里面放置一个表单,表单是用layui来渲染的。
当弹窗完成之后,我需要渲染表单中的一些内容、譬如laydate。
layer.open({ type: 1, title: "新增产品系列", content: $("#add_div").html(), btn: ['保存', '取消'], success: function (layero, index) { laydate.render({ elem: '#date' }); } });
表单的模板如下:
<div id="add_div" class="hide">
...
</div>
然而发现各种各样的问题。尤其是laydate,后来才发现,这是因为渲染了两次导致的。
页面的div虽然隐藏了,但终究还是渲染了。而layer.open的时候又渲染出了一套。导致冲突,解决方法是将模板改为script即可
<script type="text/template" id="add_div"> // ... </script>