Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2008, 19:02
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

как отделить нажатие символьных клавиш от функциональных?
Подскажите, пожалуйста, как отделить нажатие символьных клавиш от функциональных?

Пример: точка имеет KeyCode = 46, как и DEL, что мне делать, чтобы запретить точку и разрешить клавишу DEL?

Заранее благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2008, 19:06
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

46 в e.keyCode - это дэл.
46 в e.charCode - это точка.
Ответить с цитированием
  #3 (permalink)  
Старый 13.09.2008, 19:13
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

У меня charCode почему то везде выдает undefined
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2008, 19:16
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Вот небольшой тестовый скриптик написал:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>ТЕСТ</title>
		<script type="text/javascript" language="JavaScript1.2">
			<!--
			function data_check(n) {
				var echo = document.getElementById("echo" + n);
				var echoo = document.getElementById("echoo" + n);
				
				echo.innerHTML = event.keyCode;
				echoo.innerHTML = event.charCode;
			}
			//-->
		</script>
	</head>
	<body>
		<form>
			<input name="test" type="text" onKeyPress="data_check('')" onKeyDown="data_check('2')" onKeyUp="data_check('3')" />
		</form>
		<div id="echo">- 1 -</div><div id="echoo">0</div>
		<div id="echo2">- 2 -</div><div id="echoo2">0</div>
		<div id="echo3">- 3 -</div><div id="echoo3">0</div>
	</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2008, 19:27
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

ну так в ИЕ его и нет
Смотри: запускай свой пример в ИЕ и нажимай дэл. Событие онкейпресс для него не происходит. Вот так и различай в ИЕ.
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2008, 19:28
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Да и точка в ИЕ - это 190
Ответить с цитированием
  #7 (permalink)  
Старый 13.09.2008, 19:40
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

190 срабатывает на onKeyDown и onKeyUp, а на onKeyPress - 46
charCode все равно undefined, и не только в ИЕ, а так же и в опере, сработало только в Google Chrome. А в мозиле почему то вообще ничего не пашет.

Если бы мне надо было бы только точку запретить - я бы обробатывал onKeyDown и не парился бы. Но суть в том, что я изначально запрещал в полях некоторые символы для ввода (например, было одно поле, в которое я разрешил вводить только цифры), делал это через onKeyPress, но когда тестировал - понял, что упраляющие клавиши теперь тоже не работают (запретив все кроме цифр в onKeyPress, я запретил и функциональные клавиши), тогда я их тут же разрешил, но вместе с функциональными клавишами добавились и нежелательные символы. И вот теперь передо мной стоит проблема как отделить нажатие символьных клавиш от функциональных, и почему в мозиле нифига не работает.
Ответить с цитированием
  #8 (permalink)  
Старый 13.09.2008, 19:46
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Маскированный ввод

вот посмотри этот код. Он работает везде правильно. Может поймёшь, почему твой код не пашет в ФФ
Ответить с цитированием
  #9 (permalink)  
Старый 13.09.2008, 19:51
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Ну что ж, спасибо. Попробую разобраться, хотя, если честно, врядли.
Ответить с цитированием
  #10 (permalink)  
Старый 13.09.2008, 20:32
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

ZoNT можешь подписать коментарии, а то я вообще ничего разобрать немогу - некоторые операторы впервый раз вижу. А еще лучше - если не трудно, покалдуй над моим скриптом.
Ответить с цитированием
Ответ



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

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