绑定多个文本框组件

多个输入框都是实现选择日期时间,通过class去循环遍历绑定时间控件。
layui.use(['form', 'layer', 'jquery', 'laydate'], function () { var form = layui.form , $ = layui.jquery , layer = layui.layer , laydate = layui.laydate; //渲染时间控件 function timeRender(){ lay('.jobtime').each(function() { laydate.render({ elem : this , type : 'time' , trigger : 'click' }); }); //在每次动态生成laydate组件时, laydate框架会给input输入框增加一个lay-key="1", //这样就导致了多个laydate 的inpute框都有lay-key="1"这个属性。导致时间控件不起作用, //需要把动态生成的lay-key属性删除 $(".jobtime").removeAttr("lay-key"); } //页面加载的时候对已经有的控件进行初始化 timeRender(); });
动态绑定时间控件
$(document).off('click', '.js_item').on('click', '.js_item', function () { if($eduTpl[0]){ //插入一段html childDom = $eduTpl[0].innerHTML; //新增了<input class="inptext jobyear"> } //重新render(追加的html元素) var laydate = layui.laydate; //重点:要和初始化的jobtime ,class名称不一致,不知道为什么,但是实战如此 lay(".jobyear").each(function(){ laydate.render({ elem: this ,trigger: "click" ,type: "year" }); }); $(".jobtime").removeAttr("lay-key"); //重新render });
解决使用layui对select append元素无效或者未及时更新的问题
Layui会对select、checkbox、radio等原始元素隐藏,从而进行美化修饰处理。但这需要依赖于form组件,所以必须加载 form,并且执行一个实例。
layui.use('form', function(){ var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 //但是,如果你的HTML是动态生成的,自动渲染就会失效 //因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init(); form.render(); });


还没有评论,来说两句吧...