最近在接手的项目中遇到JeDate时间控件,点击未选择日时出现undefined,赶紧查看API,发现原有控件没有对日期选中处理,这里对日添加个默认值,记录一下,方便之后的查看。
问题场景:
在JeDate日期插件中,若未选中日,点击确定,在文本框显示的日期中包含undefined,影响后台的解析,需要进行给个默认值。
文本框中只是显示控件的value,这里添加回调函数donefun,获取value值来处理,程序的处理如下:
jeDate("#time1",{
format: "YYYY-MM-DD", //格式化输出
donefun: function(obj){ //回调函数,选中日期触发
//判断是否存在日,不存在则直接替换其中的undefined
if(!obj.date[0].DD){
obj.elem.value = obj.elem.value.replace("undefined","01");
//obj.date对象中包含一个数组,判断DD属性是否存在
//obj.date[0].DD = 01;
}
}
});
JeDate控件 有两个回调函数:toggle 和donefun
1、回调函数 toggle
toggle(obj) 回调函数 obj是一个对象 包含是三个值 (elem,val,date)
值一:obj.elem ,elem是当前输入框(input)的ID
值二:obj.val ,val是当前选中后的值
值三:obj.date ,date是当前选中后的值,它是一个数组,例如:{YYYY:2017,MM:09,DD:02,hh:08,mm:30,ss:15}
注意:range为false的时候可用
2、回调函数 donefun
donefun(obj) 回调函数 obj是一个对象 包含是三个值 (elem,val,date)
值一:obj.elem ,elem是当前输入框(input)的ID
值二:obj.val ,val是当前选中后的值
值三:obj.date ,date是当前选中后的值,它是一个数组,例如:{YYYY:2017,MM:09,DD:02,hh:08,mm:30,ss:15}
如果配置range不为空处于区域选择的时候date数组为最小日期与最大日期 [ { },{ } ],如果是单独选择的时候date为对象 { }
API参考
【1】http://www.jemui.com/uidoc/jedate.html#toggle