Показать сообщение отдельно
  #6 (permalink)  
Старый 30.11.2017, 12:17
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

А как определить теперь какой input вызвал эту функцию? что бы пропустить проверку на условие длины,а то сейчас получается каждый раз пере сбрасывает позицию курсора во втором input в начало.


var PS_name_old=[];
function PS_name(){
	var  Test = document.querySelectorAll('.PS_Name');
	[].forEach.call(Test,function(el, i){
		var result=el.value.match( /^[\x2A-9a-zA-Z\x20\x27]{0,8}$/g );
		if(result==null){
			el.value=PS_name_old[i];
		}
		PS_name_old[i]=el.value;
		if(el.value.length>7){
				var el_next=Test[i+1];
				el_next.focus();
				el_next.selectionStart=0;
		}
	});
}
<div align="center">
<input id="id_PS_Name_1" name="N_PS_Name_1" type="text" OnInput="PS_name()"  maxlength="8" class="PS_Name">
<input id="id_PS_Name_2" name="N_PS_Name_2" type="text" OnInput="PS_name()"  maxlength="8" class="PS_Name">
<input id="id_PS_Name_3" name="N_PS_Name_3" type="text" OnInput="PS_name()"  maxlength="8" class="PS_Name">
<input id="id_PS_Name_4" name="N_PS_Name_4" type="text" OnInput="PS_name()"  maxlength="8" class="PS_Name">
</div>
Ответить с цитированием