powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS String.fromCharCode(key)
3 сообщений из 3, страница 1 из 1
JS String.fromCharCode(key)
    #34686423
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!

Почему в IE6 String.fromCharCode(event.keyCode) для 95<event.keyCode<106 возвращает символы ''','a','b','c','d','e','f','g','h','i', когда реально коды с 96 по 105 - это коды клавиш 0 - 9 на дополнительной цифровой клавиатуре?

Задача: Как правильно показать цифры 0-9 дополнительной клавиатуры, используя их event.keyCode?

С уважением, Семен Попов
...
Рейтинг: 0 / 0
JS String.fromCharCode(key)
    #34687787
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что коды символов и коды клавиш - разные вещи. Коды цифр с 48 по 57.
...
Рейтинг: 0 / 0
JS String.fromCharCode(key)
    #34692038
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Тогда получается, что коды символов 0 - 9 и коды клавиш 0 - 9 на основной клавиатуре совпадают, а коды клавиш 0-9 дополнительной клавиатуры соответствуют другим символам.
Тогда функция dFilter из известного скрипта dFilter.js (ввод значения по маске):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
function dFilter (key, textbox, dFilterMask)
{
		dFilterNum = dFilterStrip(textbox.value, dFilterMask);
		
		if (key== 9 )
		{
		    return true;
		}
		else if (key== 8 &&dFilterNum.length!= 0 )
		{
		 	 	dFilterNum = dFilterNum.substring( 0 ,dFilterNum.length- 1 );
		}
 	  else if ( ((key> 47 &&key< 58 )||(key> 95 &&key< 106 )) && dFilterNum.length<dFilterMax(dFilterMask) )
		{
        dFilterNum=dFilterNum+String.fromCharCode(key);
		}

		var dFilterFinal='';
    for (dFilterStep =  0 ; dFilterStep < dFilterMask.length; dFilterStep++)
		{
        if (dFilterMask.charAt(dFilterStep)=='#')
				{
					  if (dFilterNum.length!= 0 )
					  {
				        dFilterFinal = dFilterFinal + dFilterNum.charAt( 0 );
					      dFilterNum = dFilterNum.substring( 1 ,dFilterNum.length);
					  }
				    else
				    {
				        dFilterFinal = dFilterFinal + "";
				    }
				}
		 		else if (dFilterMask.charAt(dFilterStep)!='#')
				{
				    dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep); 			
				}
//		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+ 1 ),'');
		}


		textbox.value = dFilterFinal;
    return false;
}
неверно написана в части:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
 	  else if ( ((key> 47 &&key< 58 )||(key> 95 &&key< 106 )) && dFilterNum.length<dFilterMax(dFilterMask) )
		{
        dFilterNum=dFilterNum+String.fromCharCode(key);
		}
...

Как раз коды 96-105 - это коды клавиш 0-9 дополнительной клавиатуры, но не коды символов 0-9.

Я ушел от этого скрипта на другой посоветованный мне operatedInput021.js. Этим я доволен.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS String.fromCharCode(key)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]