jQuery Datetimepicker - 允许多种时间格式

时间:2012-10-16 09:17:17

标签: jquery jquery-ui jquery-ui-datepicker

我正在使用一些日期时间字段构建表单。我使用jQuery DateTimePicker插件使表单更加友好 - http://trentrichardson.com/examples/timepicker/

我需要允许用户以多种格式输入时间。该插件限制用户在文本框中键入格式不正确的任何内容。我需要允许时间为15:10或15.10。我不介意挑选者总是吐出15:10,但我需要允许用户键入小数点。有谁知道这是否可行?

2 个答案:

答案 0 :(得分:0)

您可以更改按键事件中“:”“。”,请参阅example

答案 1 :(得分:0)

jquery-ui-timepicker-addon.js_doKeyPress进行以下小改动:

        if ($.datepicker._get(inst, 'constrainInput')) {
            var ampm = tp_inst._defaults.ampm,
                dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')),
                datetimeChars = tp_inst._defaults.timeFormat.toString()
                                        .replace(/[hms]/g, '')
                                        .replace(/TT/g, ampm ? 'APM' : '')
                                        .replace(/Tt/g, ampm ? 'AaPpMm' : '')
                                        .replace(/tT/g, ampm ? 'AaPpMm' : '')
                                        .replace(/T/g, ampm ? 'AP' : '')
                                        .replace(/tt/g, ampm ? 'apm' : '')
                                        .replace(/t/g, ampm ? 'ap' : '') + 
                                        " " + tp_inst._defaults.separator +
                                        tp_inst._defaults.timeSuffix +
                                        (tp_inst._defaults.showTimezone ? tp_inst._defaults.timezoneList.join('') : '') +
                                        (tp_inst._defaults.amNames.join('')) + (tp_inst._defaults.pmNames.join('')) +
                                        ':*' +
                                        dateChars,
                chr = String.fromCharCode(event.charCode === undefined ? event.keyCode : event.charCode);
            return event.ctrlKey || (chr < ' ' || !dateChars || datetimeChars.indexOf(chr) > -1);
        }

我已添加':*' +以支持输入:*作为时间分隔符。

on timepicker init使用:

$( '#rest_example_1')。timepicker({         ...     timeFormat:'hh.mm tt' });

dot b / w hh和mm非常重要... tt - 可选...但默认设置是'hh:mm tt'所以最好使用'hh.mm tt',这是有点类似。

或多或少有效。