jquery DatePicker bug修改(转)

jQuery UI里面只有一个DatePicker,只能选择日期,不能选择时间,有人做了一个可以选择时间的DateTimePicker,在这里(http://razum.si/jQuery-calendar/TimeCalendar.html )可以看到,把jquery.js,jquery-calendar.js,jquery-calendar.css下回来之后就可以用了。
但是有几个Bug需要自己修改:
1、当输入框里面的时间是0点时,控件显示不完整,这是因为有个函数有bug,如下所示:

     /*  Ensure numbers are not treated as octal.  */
    trimNumber: 
function (value) {
        
if  (value  ==  '')
            
return  '';
        
while  (value.charAt( 0 ==  ' 0 ) {
            value 
=  value.substring( 1 );
        }
        
return  value;
    },

         while  (value.charAt( 0 ==  ' 0 ) {
            value 
=  value.substring( 1 );
        }

这一句,如果是0点的话,最终会出错,因为它的长度最后是1,不能执行substring(1),改成下面就好了:

     /*  Ensure numbers are not treated as octal.  */
    trimNumber: 
function (value) {
        
if  (value  ==  '')
            
return  '';
        
while  (value.charAt( 0 ==  ' 0 &&  value.length >1 ) {
            value 
=  value.substring( 1 );
        }
        
return  value;
    },


2、作者是在jQuery 1.1.2版本下实现的,现在最新版本是1.3.2,这个控件在1.3.2下会出现异常,不能选择日期,这是因为有几个选择器有问题:

 1           $('.calendar_daysRow td[a]').hover(  //  highlight current day
 2                function () {
 3                   $( this ).addClass('calendar_daysCellOver');
 4               },  function () {
 5                   $( this ).removeClass('calendar_daysCellOver');
 6           });
 7           $('.calendar_daysRow td[a]').click( function () {  //  select day
 8               popUpCal.selectedDay  =  $( " a " , this ).html();
 9               popUpCal.selectDate();
10           });

上面的$('.calendar_daysRow td[a]')在jQuery 1.3.2中不能使用,$(" a " , this )也是有问题的,同时,在FireFox中,<a>的不能设置背景颜色,所以hover函数不起作用,把它设在<td>也能达到相同的效果,改成以下代码即可:

 1            // $('.calendar_daysRow td a').hover( // highlight current day
 2           $('.calendar_daysRow td').hover(  //  highlight current day
 3                function () {
 4                   $( this ).addClass('calendar_daysCellOver');
 5               },  function () {
 6                   $( this ).removeClass('calendar_daysCellOver');
 7           });
 8            // $('.calendar_daysRow td[a]').click(function() { // select day
 9           $('.calendar_daysRow td a').click( function () {  //  select day
10                // alert("click");
11                // popUpCal.selectedDay = $("a",this).html();
12               popUpCal.selectedDay  =  $( this ).html();
13               popUpCal.selectDate();
14           });

经过修改之后在IE7和FireFox3都能在jQuery 1.3.2环境下正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值