动态设置时间选择类型无效

提问 已结 5 216
小南瓜·G
小南瓜·G 2019-4-13
悬赏:20飞吻
版本:layui layui-v2.4.5 浏览器:chrome
页面效果:

说明:
默认月选择input显示正常,但是切换日选择或者时间选择的时候。
startTime.config.type = 'datetime' 和startTime.config.format = 'yyyyMMddHH';对日期下拉选择框的改变是有效的,但是input无法正常显示。。。。。。。
提示如下:
刚选择完下拉框提示:

点击任意按钮或者界面的位置提示如下:


请问怎么处理这个呢???

前端代码:
<input type="text" class="layui-input input-date" id="startTime" name="startTime" value="">-
<input type="text" class="layui-input input-date" id="endTime" name="endTime" value="">

js代码:
var startTime = laydate.render({
elem: '#startTime',
type: 'month',
format: 'yyyyMM',
done: function(value, date){
console.log(value, date);
var date = date.year + "-0" + date.month + "-" + date.date;
$("#startTime").val(date);
}
});
var endTime = laydate.render({
elem: '#endTime',
type: 'month',
format: 'yyyyMM',
done: function(value, date){
console.log(value, date);
var date = date.year + "-0" + date.month + "-" + date.date;
$("#endTime").val(date);
}
});
form.render();
form.on('select(statstype)', function(data){
if (data.value === '1') { //按时
startTime.config.type = 'datetime';
startTime.config.format = 'yyyyMMddHH';
endTime.config.type = 'datetime';
endTime.config.format = 'yyyyMMddHH';
}
if (data.value === '2') { //按日
startTime.config.type = 'date';
startTime.config.format = 'yyyyMMdd';
endTime.config.type = 'date';
endTime.config.format = 'yyyyMMdd';
}
if (data.value === '3') { //按月
startTime.config.type = 'month';
startTime.config.format = 'yyyyMM';
endTime.config.type = 'month';
endTime.config.format = 'yyyyMM';
}
});
回帖
  • 这个没办法这么简单的处理的,目前laydate要改一个已经实例过的节点的laydate属性是基本做不到的,目前比较可能的就是最大最小,关键还不是跟初始化一样的结构的,改类型更不用想了,因为format不一样,即使你顺带改了对应的format也不行,因为render之后内部判断的逻辑不是根据你render的时候设置的那个format的结构了,而是内部的另外的逻辑,所以改了对应的format没用的,目前一个比较好的方式且不需要修改源码的方式就是“销毁”原先的laydate,然后重新render成新的config新的laydate实例,具体方法可以参考我这个帖子里面的第二个修改
    laydate 新增“日期多选”和“销毁方法”
    就是先将那个节点跟原先的laydate给接触了绑定关系了,后面重新render新的config即可,当然也可以考虑使用我这个laydatePro的插件,里面对节点重新render会直接覆盖之前的实例
    0 回复
  • 麻烦各位大神帮忙处理下,谢谢!!!!!
    0 回复
  • 好的 非常感谢大神的帮助。
    0 回复
  • @岁月小偷 好的 非常感谢大神的帮助。
    0 回复
  • @小南瓜·G 不客气[微笑]
    0 回复