最近做项目需要自己选择时间,刚接触js不久,jquery easyui也不熟悉,用了datetimebox控件,结果我获取不到需要的时间格式
网上也找不到资料,没办法,只有研究源码(jquery.eaysui.min.js)了,事实证明这是最好的办法,学习效果最好
我需要的源码如下
查一下 $.data 函数
function _953(_954){
var opts=$.data(_954,"datetimebox").options;
var date=_94f(_954);
_94e(_954,opts.formatter.call(_954,date));
$(_954).combo("hidePanel");
};
function _94f(_950){
var c=$(_950).datetimebox("calendar");
var t=$(_950).datetimebox("spinner");
var date=c.calendar("options").current;
return new Date(date.getFullYear(),date.getMonth(),date.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds"));
};
function _94e(_955,_956,_957){
var opts=$.data(_955,"datetimebox").options;
$(_955).combo("setValue",_956);
if(!_957){
if(_956){
var date=opts.parser.call(_955,_956);
$(_955).combo("setValue",opts.formatter.call(_955,date));
$(_955).combo("setText",opts.formatter.call(_955,date));
}else{
$(_955).combo("setText",_956);
}
}
var date=opts.parser.call(_955,_956);
$(_955).datetimebox("calendar").calendar("moveTo",date);
$(_955).datetimebox("spinner").timespinner("setValue",_958(date));
function _958(date){
function _959(_95a){
return (_95a<10?"0":"")+_95a;
};
var tt=[_959(date.getHours()),_959(date.getMinutes())];
if(opts.showSeconds){
tt.push(_959(date.getSeconds()));
}
return tt.join($(_955).datetimebox("spinner").timespinner("options").separator);
};
};
里面一些jquery函数具体怎么用,多去查下资料
后面我覆盖了中间一个按钮的响应函数,让时间按我需要的格式显示
//覆盖 datetimebox 底部中间一个按钮的默认函数
var buttons = $.extend([], $.fn.datebox.defaults.buttons);
buttons.splice(1, 0, { // JS中array 的 splice方法 ,具体查资料
text: '确定',
handler: function(target){ //这里的参数target指的是 datetimebox 这个控件本身的引用
var Calendar = $(target).datetimebox("calendar") ;
var date = Calendar.calendar("options").current ;
var Spinner = $(target).datetimebox("spinner") ;
var month = date.getMonth()+1 ;
var day = date.getDate() ;
var timeStr = date.getFullYear()%100 + ""+ (month<10?('0'+month):month) + ""+ (day<10?('0'+day):day); //返回的日期是整数
var comboTime = date.getFullYear()%100 + "-"+ (month<10?('0'+month):month) + "-"+ (day<10?('0'+day):day) + " ";
var hour = Spinner.timespinner("getHours") ;
var minute = Spinner.timespinner("getMinutes") ;
var seconds = Spinner.timespinner("getSeconds") ;
timeStr += (hour<10?('0'+hour):hour) + "" + (minute<10?('0'+minute):minute) + "" + (seconds<10?('0'+seconds):seconds);
comboTime += (hour<10?('0'+hour):hour) + ":" + (minute<10?('0'+minute):minute) + ":" + (seconds<10?('0'+seconds):seconds);
alert(timeStr);
$(target).combo("setText",comboTime);//设置组合框文本
$(target).combo("hidePanel");
}
});
同理,代码中不懂的地方多查资料,网上都有,关键在于要看懂源码中的那些数字是什么意思
开源就是好啊,也可以让我们学习得更快