引言:不知道大家有没有碰到使用laydate时间控件的时候需要的一些指定的回调,比如laydate已有的选择回调。我就碰到了清空时需要回调的需求,网上也找了很多,但是csdn上大多需要C币,我就很纳闷,可能是别人写的太好了,所以需要回报吧,然后我就只能自己动手丰衣足食了,于是laydata.js被我仔仔细细看了一遍,终于功夫不负有心人,找到了一种超级简单的办法,当然,和大家分享欢乐多,同时也记录一下。
问题:laydate控件的清空回调??
应用场景:选择时间段的时候,开始时间的选择限制结束时间的最小时间和开始时间,and,结束时间的选择限制开始时间的最大时间,然后清空开始时间或者结束时间就需要对相应的结束时间或者开始时间的限制初始化。
解决办法:修改laydate.js的代码
具体操作:打开引用的laydate.js文件,找到清空的点击事件,如下:
//清空 as.oclear = S('#laydate_clear'); Dates.on(as.oclear, 'click', function(){ Dates.elem[as.elemv] = ''; Dates.close(); });
然后在之中加一句代码,如下:
typeof Dates.options.testClear === 'function' && Dates.options.testClear();
具体加入位置,如下:
//清空 as.oclear = S('#laydate_clear'); Dates.on(as.oclear, 'click', function(){ Dates.elem[as.elemv] = ''; Dates.close(); typeof Dates.options.testClear === 'function' && Dates.options.testClear(); });
完成,然后前端使用和choose选择事件一样,如下:
var start = { elem: '#startTime', format: 'YYYY-MM-DD', // min: laydate.now(), //设定最小日期为当前日期 max: '2099-06-16', //最大日期 istime: true, istoday: false, choose: function(datas){ end.min = datas; //开始日选好后,重置结束日的最小日期 end.start = datas //将结束日的初始值设定为开始日 }, testClear: function(){//此处是初始化结束时间的限制 end.min = '1900-01-01 00:00:00'; end.start = '1900-01-01 00:00:00'; } };
var end = { elem: '#endTime', format: 'YYYY-MM-DD', // min: laydate.now(), max: '2099-06-16', istime: true, istoday: false, choose: function(datas){ start.max = datas; //结束日选好后,重置开始日的最大日期 }, testClear: function(){//此处是初始化开始时间的限制 start.max = '2099-12-31 23:59:59'; } };
感谢老铁们的支持!!!