问题描述
在我的页面上,我弄了一个开始时间,一个结束时间。两个时间都给了默认值,如下图
<div class="layui-inline layui-show-xs-block">
<input class="layui-input" placeholder="开始时间" name="start" id="startTime">
</div>
<div class="layui-inline layui-show-xs-block">
<input class="layui-input" placeholder="截止时间" name="end" id="endTime">
</div>
然后发现,点击开始时间的清除功能无效。(结束时间的功能都是正常的,不知道为什么)
用鼠标时间框里的内容全部清除了,但是鼠标点击其他地方后,又自动填充了默认值。导致无法不选择时间查询。
解决办法
查看layui时间控件的文档后,发现清除功能有个回调方法done
在这里value和input的val都设置成所选的时间,就可以了。
done方法的参数不止这一个,只是我这里只用到了一个。具体参数可以看layui的时间控件文档
当我们点击清空的时候data就是空的,当我们选了时间的时候data就是我们所选择的时间
layui时间控件的另一个bug
另一个bug,在页面加载的时候使用table.init方法获取列表数据,时间没能使用我们设置的默认值
经过我反复的测试,感觉应该原因是table.init方法在laydate.render方法还没有执行结束导致的。偶尔会出现laydate.render先执行完毕,这时候table.init传到后端startTime的时候是正常有默认值的。
解决方法:将laydate放在最前面,table放在后面。
layui.use(['laydate', 'form' , 'table'], function () {