Задать вопрос
@ferdasfarmazone
Верстальщик!

Как разрешить ввод только для определенного времени?

Есть инпут:
<input type="text" name="time" class="reserve-input reserve-input__time" value="">

Есть маска, для его ввода:
$('.reserve-input__time').inputmask({'mask': '99:99'});

Суть в том, что разрешить ввод времени, которое входит в диапазон 12:00 - 22:00.
Для маски юзаю плагин https://github.com/RobinHerbots/Inputmask
Может сам плагин умеет это? (в документации не нашёл, может плохо искал)
Или нужно писать свой костыль?
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Судя по документации там есть "validator" (ищите по этому слову). Вам подойдет такой регексп:

var re = /((1[0-9]|2[0-1]):([0-5][0-9])|22:00)/;
[
"09:59", // false
"10:00", // true
"21:59", // true
"22:00", // true
"22:01"  // false
].map(a => !!a.match(re))


Можно ещё написать функцию - её будет проще настраивать:

var minTime = 10 * 60 + 0; // часы в минутах + минуты
var maxTime = 22 * 60 + 0;

validator = data => {
  var parts = data.split(':');

  if (parts != 2) return false;

  var hours = parseInt(parts[0], 10);
  var minut = parseInt(parts[1], 10);

  var time = hours * 60 + minut;

  return time >= minTime && time <= maxTime;
}


Я не проверял, но идею вы поняли.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы