Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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/)" >

С чем это связано?
Ответить с цитированием
  #2 (permalink)  
Старый 01.05.2015, 13:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Ramundo,
<INPUT type="text" id = "up"  >
<script>
 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;
}
document.getElementById("up").addEventListener("keypress", function(event){return filter_input(event, /\d/)}, false);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 01.05.2015, 14:07
Аспирант
Отправить личное сообщение для Ramundo Посмотреть профиль Найти все сообщения от Ramundo
 
Регистрация: 07.03.2015
Сообщений: 47

Спасибо! ########
Только блин "Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его рони."(
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно вызвать функцию только по success? imedia Элементы интерфейса 9 22.09.2014 08:43
Как правильно вызвать функцию Mateus jQuery 1 16.12.2012 15:43
как назначить обработчик на элемент подгруженный аяксом Yurik AJAX и COMET 1 03.05.2011 14:11
Помогите вынести обработчик события в функцию. prowoke Events/DOM/Window 3 25.03.2011 00:55
Назначить на обработчик события метод обьекта Logo Общие вопросы Javascript 11 20.06.2009 23:40