JQuery замаскированный редактировать для времени - PullRequest
3 голосов
/ 14 февраля 2010

Использование meioMask Plugin Есть ли способ настроить маску, чтобы она принимала действительное время в 24 часа или даже лучше в 12-часовой системе?

$("#txtTime").setMask('time');

Этот плагин имеет предопределенную 24-часовую маску «времени», но она не совсем корректна, поэтому вы можете ввести недопустимые значения времени, например «29:00». Эта маска не подходит для этой цели, и если нет, то какая из них лучше?

1 Ответ

13 голосов
/ 14 февраля 2010

Попробуйте это:

$.mask.rules.H = /([0-1][0-9]|2[0-3])/;  // 24 hours
$.mask.masks.time = 'H:59';
$("#txtTime").setMask('time');

Исправление

Правила должны быть только для одного символа, поэтому, имея это в виду, вы можете поменять маску, когда ввод начинается с «2», и подтвердить, что следующий символ будет [0-3]:

$("#txtTime").setMask("29:59")
.keypress(function() {
  var currentMask = $(this).data('mask').mask;
  var newMask = $(this).val().match(/^2.*/) ? "23:59" : "29:59";
  if (newMask != currentMask) {
    $(this).setMask(newMask);
  }
});

Примечание : в этом случае я использую событие нажатия клавиши, при необходимости обязательно обработайте событие вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...