easyui 中 覆盖 datetimebox 按钮默认函数

最近做项目需要自己选择时间,刚接触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");
            }
        });

同理,代码中不懂的地方多查资料,网上都有,关键在于要看懂源码中的那些数字是什么意思

开源就是好啊,也可以让我们学习得更快


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值