#jquery #timepicker
#jquery #timepicker
Вопрос:
Я использую jQuery timepicker и пытаюсь запретить пользователю вставлять недопустимые символы (буквы).
Зная, что в моей системе есть 4 временных формата, поэтому я не могу использовать регулярное выражение или маску.
Итак, я хочу знать, есть ли способ сделать это или нет.
$('.gcureservationtimepicker').timepicker({
timeFormat: '@AdminSiteHelper.GCUTimeFormat()',
// timeFormat: 'HH:mm:ss',
interval: 15,
//maxTime: '12:00 PM',
//defaultTime: '8',
//startTime: '10:00',
dynamic: false,
dropdown: true,
scrollbar: true,
change: GenerateNewTimePicker
});
Комментарии:
1. Какой timepicker вы используете? Существует множество плагинов с почти идентичными именами и широким спектром функций.
2. @DBS я использую ссылку
Ответ №1:
Из того, что я вижу в документах Timepicker, он в основном интерпретирует то, что вы пишете в поле, поэтому отключение использования букв будет ограничивать его функциональность.
Если вы хотите ограничить параметры чем-то вроде только часов выбора, я бы рекомендовал вам использовать Pickadate в качестве средства выбора времени. Оно аналогично по использованию, но поле доступно только для чтения.
Обновить
Если вы не можете изменить библиотеку и вам нужно использовать timepicker, я бы подумал об ограничении параметров ввода ввода. Что-то вроде примера ниже.
Кроме того, другим вариантом, в зависимости от ваших требований к совместимости, может быть использование <input type="time">
, которое уже имеет множество необходимых вам ограничений.
Дополнительное примечание
Если хотите, вы также можете углубиться в простую проверку, которую я добавил ниже, и работать либо с регулярными выражениями, либо с позиционированием. Что-то вроде:
- Символы 1 и 2 могут быть только числами от 00 до 23 или от 01 до 12, в зависимости от того, 12 часов или 24 часа.
- Символ 3 может быть только двоеточием.
- Символы 4 и 5 могут быть только числами.
- Входная строка может содержать не более 5 символов.
Регулярное выражение для приведенной выше структуры (без проверки минимального и максимального чисел) может быть: ^d{2}:d{2}$
.
function checkNumber() {
var e = event || window.event; // get event object
var key = e.keyCode || e.which; // get key cross-browser
var allowedKeys = [8, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 186]; // includes backspace, numbers and :
if (!allowedKeys.includes(key)) {
if (e.preventDefault) e.preventDefault(); //normal browsers
e.returnValue = false; //IE
}
}
<input type="text" id="onlytime" onkeydown="checkNumber()" placeholder="Input time">
<br><br>
<input type="time" id="justintime">
Комментарии:
1. это может помочь, но не может быть полезным в моем случае, потому что я настроил этот сборщик и не могу изменить его сейчас.
2. Вы можете принять ответ, если он сработал для вас 🙂 @OmarOdeh