У меня есть пример вроде
в поле ввода изображения выше я просто помещаю 1
и по умолчанию конвертирую 1:00
, когда щелкаю за пределами поля ввода.
Я нашел много примеров, но не могу найти точно таких.
Как я могу это сделать?
Очень признателен, если решил это.
Мой HTML
<input class = "form-control time-count" type = "text" name = "hour-times" id = "hour_times">
JS, в настоящее время просто предотвращает символ и добавляет двоеточие :
после двух цифр.
var time = document.getElementsByClassName('time-count');
for (var i = 0; i < time.length; i++) {
time[i].addEventListener('keyup', function (e) {;
var reg = /[0-9]/;
if (this.value.length == 2 && reg.test(this.value)) this.value = this.value + ":";
if (this.value.length > 5) this.value = this.value.substr(0, this.value.length - 1);
});
};
Спасибо
предоставить вам HTML.
настройте прослушиватель событий на «размытие», проверьте, какое значение у вас есть, а затем измените / преобразуйте значение в то, что вы хотите.
@ J.Langer обновил вопрос
Код, который у вас есть, выглядит многообещающим. В чем твоя проблема сейчас?
Я хочу, чтобы при установке 1
или чего-то еще он автоматически форматировался в 1:00
@Jeff
Если вы хотите, чтобы ваш javascript запускался автоматически при нажатии 1, попробуйте привязать событие «нажатие клавиши» вместо нажатия клавиши.
length == 2
, поэтому, если вы хотите, чтобы оно уже реагировало при вводе только одной цифры, просто измените это на 1 ... - но имейте в виду, что кто-то может захотеть ввести '10: 00 '; тогда он не мог этого сделать.
this.value.length >= 1 && this.value.length <=2 &&...
, но это имеет негативные последствия, как уже упоминалось
Можете ли вы показать свою HTML-разметку?