项目上线,发现后台管理系统layui的子页面出现时间控件闪退的问题,根本选取不到时间。
其原因是:如果出现页面找到多个节点,只有第一个节点能正常使用后面的节点都会闪退,可以理解为目前laydate不支持一次性render多个节点。不是什么实例重复的问题,因为我每个页面创建的实例都不一样还是闪退。而后台管理系统中这种父子页面确实有多个页面使用了时间控件,从而render多个节点。
解决方法:
laydate文件中的默认配置,trigger: 'focus' //呼出控件的事件这个focus改成click。
测试部署上线有效。
layui.use('laydate', function(){ var laydate = layui.laydate; //日期时间选择器 laydate.render({ elem: '#startTime' ,type: 'datetime' ,trigger: 'click'//呼出事件改成click //,format: 'yyyy-MM-dd HH:mm:ss' //可任意组合 }); //日期时间选择器 laydate.render({ elem: '#endTime' ,type: 'datetime' ,trigger: 'click'//呼出事件改成click // ,format: 'yyyy-MM-dd HH:mm:ss' //可任意组合 }); });
更多layui知识请关注layui使用教程栏目。
Laydate 控件如何只显示年份
如下所示在<head>下面加入css样式 便只显示年份了
<html>
<head>
<style>
.laydate_m,.laydate_table{
display: none;
}
</style>
Laydate 控件如何只显示年 月
<style>
.laydate_table{
display: none;
}
</style>
Laydate 控件如何只显示 日
<style>
.laydate_top{
display: none;
}
</style>
Laydate 控件如何只显示时分秒
<style>
#laydate_box .laydate_top,#laydate_box.laydate_table,#laydate_today{display:none;}
</style>
当然都还需要对应修改下面 的format
<script type="text/javascript">
$(document).ready(function() {
laydate({
elem: '#haha', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种 方式 '#id .class'
event: 'focus',//响应事件。如果没有传入event,则按照默认的click
format:'YYYY-MM' //只显示年月 其他类似
});
});
</script>
<input id="haha" name="haha" type="text" maxlength="20" class="laydate-icon layer-date "/>
使用layDate日期控件 就是 导入layer文件到项目中 然后在页面中引用 layer.js 就行了 然后 把上面js的方法写上
在<input>框中 引用class laydate-icon 和 layer-date就ok了
如下表
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。