Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2021, 18:45
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Валидация для Input со значениями для часов и минут
Привет, написал небольшую функцию для валидации чисел, где должны быть только часы и минуты:
// max может быть 12, 24 или 59
// соответственно числа могут быть в пределах 1-12, 00-24, 00-59
function validateTime( el, max ) {
	var _max = String( max ),
		_pos = el.selectionStart;
	
	// пропускаем только числа от 0 до 9
	el.value = el.value.replace( /[^0-9]+/g, '' );
	
	var next = el.nextElementSibling;
	if( el.value[0] ) {
		if( _pos === 1 ) {
			el.value = el.value[0];
		}
		// запрещаем ввод более 2 чисел
		if( el.value.length > 2 ) {
			el.value = el.value.slice( 0, -1 );
		}
		if( el.hasAttribute( 'data-hour' ) && ( el.value[1] === '0' && el.value[0] === '0' ) ) {
			el.value = el.value.slice( 0, -1 );
			return;
		}
		// если в поле первое число больше первого числа из максимального, фокус на следующий input в dom дереве
		if( el.value[0] > _max[0] || _pos == 2 ) {
			if( next.nodeName === 'INPUT' ) {
				next.focus();
				next.setSelectionRange(0, 0);
			}
		}
	}
	
	if ( el.value > max ) {
		el.value = max;
	}
}


Смотрю, и думаю, есть ли что-то более короткое и адекватное? А то кажется бредом несусветным.

Последний раз редактировалось Янковиц, 18.03.2021 в 18:53.
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2021, 19:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Янковиц,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов события для input file ArmagedDance jQuery 4 17.02.2013 10:39
кнопка "+" для input type="file" Lutsk Элементы интерфейса 5 18.11.2011 20:45
Валидация поля для отправки формы shkarbatov Javascript под браузер 3 25.07.2011 14:07
Cвоя кнопка для input file vah-smile (X)HTML/CSS 1 26.04.2011 02:24
Масскированный ввод часов и минут pt81 jQuery 0 29.10.2010 17:24