首页 > 代码库 > easyui DateTimeBox OK
easyui DateTimeBox OK
一、datetimebox ok按钮没有点击事件,但是可以通过onSelect事件模拟出“点击了ok按钮一样的效果”,我的代码:
关键:
0,理解DateTimeBox控件,这个控件是由DateBox+TimeSpinner这2个控件组成的,而DateBox又继承自combo控件。
1,使用setText方法,设置控件文本框的内容,这个方法是DateTimeBox从combo控件中继承过来的。不能使用setValue方法,因为这个方法是从DateBox继承过来的,但是DateTimeBox控件并没有重写这个方法,由于DateTimeBox还包含"时分秒",所以无法使用这个DateBox的方法。
2,使用spinner方法,获取“时分秒”信息,这个方法返回DateTimeBox中包含的TimeSpinner控件,使用TimeSpinner控件的getValue方法可以获得时间信息
3,使用onSelect方法,获取“日期”信息,onSelect:function(date){},其中date是事件触发时选中的日期,是js的Date类型数据
4,使用hidePanel方法,把下拉日期面板关闭,该方法也是继承自combo控件
容易看懂的代码:
$(‘#TextStartTime‘).datetimebox({
showSeconds:false,
required:true,
onSelect:function(date){
var time=$(‘#TextStartTime‘).datetimebox(‘spinner‘).spinner(‘getValue‘);
$(‘#TextStartTime‘).datetimebox(‘setText‘,date.getFullYear()+‘-‘+ (date.getMonth()+1) +‘-‘+date.getDate()+‘ ‘+ time);
$(‘#TextStartTime‘).datetimebox(‘hidePanel‘);
}
});
让日期2014-1-2变成2014-01-02格式的代码:
$(‘#TextStartTime‘).datetimebox({
showSeconds:false,
required:true,
onSelect:function(date){
var time=$(‘#TextStartTime‘).datetimebox(‘spinner‘).spinner(‘getValue‘);
$(‘#TextStartTime‘).datetimebox(‘setText‘,date.getFullYear()+‘-‘+ ((date.getMonth()+1)<10 ? (‘0‘+(date.getMonth()+1)) : (date.getMonth()+1))+‘-‘+((date.getDate())<10 ? (‘0‘+(date.getDate())) : (date.getDate()))+‘ ‘+time);
$(‘#TextStartTime‘).datetimebox(‘hidePanel‘);
}
});
二、日期格式化
var sysformat = function (time, format) {
var t = new Date(time);
var tf = function (i) { return (i < 10 ? ‘0‘ : ‘‘) + i };
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
switch (a) {
case ‘yyyy‘:
return tf(t.getFullYear());
break;
case ‘MM‘:
return tf(t.getMonth() + 1);
break;
case ‘mm‘:
return tf(t.getMinutes());
break;
case ‘dd‘:
return tf(t.getDate());
break;
case ‘HH‘:
return tf(t.getHours());
break;
case ‘ss‘:
return tf(t.getSeconds());
break;
}
})
}
easyui DateTimeBox OK