我正在构建一个带有一些日期时间字段的表单。我正在使用 jQuery DateTimePicker 插件使表单更加友好 - http://trentrichardson.com/examples/timepicker/
我需要允许用户以多种格式输入时间。该插件限制用户在文本框中输入格式不正确的任何内容。我需要允许时间为 15:10 或 15.10。我不介意选择器是否总是吐出 15:10,但我需要允许用户输入小数点。有谁知道这是否可能?
我正在构建一个带有一些日期时间字段的表单。我正在使用 jQuery DateTimePicker 插件使表单更加友好 - http://trentrichardson.com/examples/timepicker/
我需要允许用户以多种格式输入时间。该插件限制用户在文本框中输入格式不正确的任何内容。我需要允许时间为 15:10 或 15.10。我不介意选择器是否总是吐出 15:10,但我需要允许用户输入小数点。有谁知道这是否可能?
在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);
}
我添加':*' +
了支持输入:
和*
时间分隔符。
在 timepicker 初始化时使用:
$('#rest_example_1').timepicker({ ... timeFormat: 'hh.mm tt' });
b/w hh和dot
mm 非常重要... tt - 可选... 但默认设置是 'hh:mm tt' 所以最好使用有点相似的 'hh.mm tt'。
这或多或少是有效的。
您可以更改“。” 对于按键事件中的“:” ,请参见示例