Но у меня были некоторые проблемы с совместимостью с jQuery Validator и jQuery TimePicker, надеюсь, вы не используете оба.
Но если вы это сделаете, я использовал этот другой плагин, который заставляет пользователя вводить маскированный ввод
На самом деле я предпочитаю это, потому что вы можете продолжать заполнять форму, не поднося руку к мыши, чтобы выбрать нужное время из меню.
и я проверил время в jQuery с этим пользовательским правилом
// custom rule for time fields
jQuery.validator.addMethod("time", function(value, element) {
var hh = value.toString().substring(0, 2);
var mm = value.toString().substr(3, 2);
return this.optional(element) || ((parseFloat(hh) > 0 && parseFloat(hh) <= 12) && (parseFloat(mm) > 0 && parseFloat(mm) <= 59));
}, "Please enter a valid time");
РЕДАКТИРОВАТЬ: добавление метода раунда, чтобы получить 00, 15, 30, 45 минут
$(".time").blur(function() {
var value = $(this).val();
var hh = value.toString().substring(0, 2)
var mm = parseFloat(value.toString().substr(3, 2));
if (mm > 0 && mm <= 15) { $(this).val(hh+":15"); return; }
if (mm > 15 && mm <= 30) { $(this).val(hh+":30"); return; }
if (mm > 30 && mm <= 59) { $(this).val(hh+":45"); return; }
$(this).val(hh+":45"); // if 00
});