Javascript 计时器选择器执行';不允许hourMax值超过99

Javascript 计时器选择器执行';不允许hourMax值超过99,javascript,jquery,datetimepicker,timepicker,Javascript,Jquery,Datetimepicker,Timepicker,如果我将hourMax保持在99以上,则只取最后两位数字作为hourMax值。 如果hourMax:139,它最多允许39个 如果要选中,请在“脚本”选项卡中将以下链接中的hourMax更改为139并在那里运行。 时间选择器(顾名思义)用于选择一天中的某个时间(即通常在0到23小时之间),而不是时间间隔。也许你应该看看。在“.”下有一个“无限小时”的例子。你可以用微秒和毫秒来玩这个把戏 例如: $(".timepicker").timepicker({ addSliderAccess :

如果我将hourMax保持在99以上,则只取最后两位数字作为hourMax值。 如果hourMax:139,它最多允许39个

如果要选中,请在“脚本”选项卡中将以下链接中的hourMax更改为139并在那里运行。

时间选择器(顾名思义)用于选择一天中的某个时间(即通常在0到23小时之间),而不是时间间隔。也许你应该看看。在“.”下有一个“无限小时”的例子。

你可以用微秒和毫秒来玩这个把戏

例如:

$(".timepicker").timepicker({
    addSliderAccess : true,
    millisecText:"Hours",
    microsecText:"Minutes",
    timeFormat:"l:c",
    showHour:false,
    showMinute:false,
    showMicrosec:true,
    showMillisec:true,          
    millisecMax:999,
    microsecMax:55,
    stepMillisec:1,
    stepMicrosec: 5,
    microsecGrid: 10,                       
    sliderAccessArgs : {
        touchonly : false
    }
}); 
顺便说一下,您需要扩展插件函数$.datepicker.formatTim,以正确格式化“假”小时和分钟,这里用微秒和毫秒代替

扩展插件:

/*HERE IS THE OVERRIDE OF THE TIMEPICKER FUNCTION, 
YOU CAN PUT THIS INTO A CUSTOM FOLDER AND FILE AND 
CALL IMPLEMENT IT AFTER THE jquery-ui-timepicker.addon.js 
like jquery-ui-timepicker.addon.custom.js for example*/

(function ($) {
    $.datepicker.formatTime= function (format, time, options) {
        options = options || {};
        options = $.extend({}, $.timepicker._defaults, options);
        time = $.extend({
            hour: 0,
            minute: 0,
            second: 0,
            millisec: 0,
            microsec: 0,
            timezone: null
        }, time);

        var tmptime = format,
            ampmName = options.amNames[0],
            hour = parseInt(time.hour, 10);

        if (hour > 11) {
            ampmName = options.pmNames[0];
        }

        tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function (match) {
            switch (match) {
            case 'HH':
                return ('0' + hour).slice(-2);
            case 'H':
                return hour;
            case 'hh':
                return ('0' + convert24to12(hour)).slice(-2);
            case 'h':
                return convert24to12(hour);
            case 'mm':
                return ('0' + time.minute).slice(-2);
            case 'm':
                return time.minute;
            case 'ss':
                return ('0' + time.second).slice(-2);
            case 's':
                return time.second;
            case 'l':
                return ('0' + time.millisec).slice(-3);
            case 'c':
                return ('0' + time.microsec).slice(-2);
            case 'z':
                return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, false);
            case 'Z':
                return $.timepicker.timezoneOffsetString(time.timezone === null ? options.timezone : time.timezone, true);
            case 'T':
                return ampmName.charAt(0).toUpperCase();
            case 'TT':
                return ampmName.toUpperCase();
            case 't':
                return ampmName.charAt(0).toLowerCase();
            case 'tt':
                return ampmName.toLowerCase();
            default:
                return match.replace(/'/g, "");
            }
        });
        return tmptime;
    };
})(jQuery);

享受。

如果你认为应该允许3个数字,请记录或建议拉取请求。如果有人出现相同的问题,请尝试找到最佳解决方案。我为timepicker添加了一个插件。给定的演示与keithwood timeEntry插件不同。Keith wood的timeEntry插件是一个不错的选择。但是,我们在所有其他地方都使用滑块ui作为时间选择器。如果它被定义为0-24小时,那么它应该不允许直到99,对吗?