遇到的问题:
一个页面中包含多个渲染的时间选择器,如下:
html:
<td colspan="5">
<input type="text" name="StartTime" autocomplete="off" placeholder="请选择开始时间" class="layui-input dzstartTime">
<span>到</span>
<input type="text" name="EndTime" autocomplete="off" placeholder="请选择结束时间 class="layui-input dzendTime">
<span>止</span>
</td>
渲染:
var StartImpTime = layui.laydate.render({
elem: '.startTime',
theme: '#57B869',
type: 'datetime'
});
var EndImpTime = layui.laydate.render({
elem: '.endTime',
theme: '#57B869',
type: 'datetime'
});
此时会出现时间选择器打不开或者闪退的情况。
解决方法:
1、先确定layui.js的引入没有问题;
2、如果用的是input元素,给input标签加入lay-key属性,依次赋值,不要重复,如下:
<input type="text" name="StartTime" autocomplete="off" placeholder="请选择开始时间" class="layui-input dzstartTime" lay-key="1">
<span>到</span>
<input type="text" name="EndTime" autocomplete="off" placeholder="请选择结束时间" class="layui-input dzendTime" lay-key="2">
3、渲染时把trigger: 'focues',换成trigger: 'click',如下:
var StartImpTime = layui.laydate.render({
elem: '.startTime',
theme: '#57B869',
type: 'datetime',
trigger: 'click'
});
var EndImpTime = layui.laydate.render({
elem: '.endTime',
theme: '#57B869',
type: 'datetime',
trigger: 'click'
});
第二步和第三步不是同时设置,可以测试,有的通过赋值lay-key就能解决问题,我通过lay-key设置未解决闪退问题,所以试了第三步添加trigger: 'click',目前使用没有问题。