使用layui的页面需要js添加元素,其中元素中的控件需要重新渲染一下,自己踩得坑是:在浏览器复制的html元素copy到js里面直接append,其中的date控件有多余的lay-key="1"没有注意,导致了渲染后时间框一直无效。贴上渲染的代码记录一下:
//初始化
layui.use(['form', 'layer', 'laydate'],
function() {
$ = layui.jquery;
var form = layui.form,
layer = layui.layer,
laydate = layui.laydate;
//执行多个laydate实例
lay('.layui-date').each(function() {
laydate.render({
elem: this,
format: 'yyyy-MM-dd',
type: 'date',
trigger: 'click'
});
});
//监听提交
form.on('submit(add)',
function(data) {});
});
//js 动态添加元素
function add(){
var num=$(".formDiv").length;
var str="*****";//此处代码复制的浏览器html 没有仔细检查!
$("#formData").append(str);
renderDate();
layui.form.render();
}
function renderDate() {
//layui多个日期渲染
layui.use('laydate', function(laydate) {
lay('.layui-date').each(function() {
laydate.render( {
elem : this, //指定元素
format : 'yyyy-MM-dd',
type : 'date',
trigger : 'click'
});
});
});
}