Показать сообщение отдельно
  #1 (permalink)  
Старый 01.05.2015, 12:56
Аспирант
Отправить личное сообщение для Ramundo Посмотреть профиль Найти все сообщения от Ramundo
 
Регистрация: 07.03.2015
Сообщений: 47

Правильно назначить функцию-обработчик.
Как назначить для этого INPUT:
<INPUT type="text" id = "up"  >

вот эту функцию?
function filter_input(e, regexp) {
	alert (e);
  	 e= e || window.event;

	 var target=e.target || e.srcElement;
    
    var code =  e.charCode || e.keyCode;
    if (code<32 ||  e.ctrlKey || e.altKey) return;

    var text=String.fromCharCode(code);
    if (!regexp.test(text))
	{
		if (e.preventDefault) e.preventDefault();
		if (e.returnValue) e.returnValue = false;
		return false; 
	};
  
 return true;
}


Пробовал в FF так:
if (document.getElementById("up").addEventListener)
	document.getElementById("up").addEventListener("keypress", filter_input(event, /\d/), false);

Так:
window.onload = function() {
document.getElementById("up").onkeypress = function( ){filter_input(event, /\d/);};
}

но в обои случаях передача event первым аргументом вызывает ошибку.
Зато вот так все работает отлично:
<INPUT type="text" id = "up"   onkeypress="return filter_input(event,/\d/)" >

С чем это связано?
Ответить с цитированием