powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [onkeypress] Подмена нажатой клавиши
14 сообщений из 14, страница 1 из 1
[onkeypress] Подмена нажатой клавиши
    #35238141
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ИЕ пишу
Код: plaintext
1.
2.
3.
4.
5.
function keyPress(AEvent) {
  if (AEvent.keyCode ==  65 ) 
    AEvent.keyCode =  66 ;
  return true;
}

В FF нашел такой код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function keyPress(AEvent) {
  if (AEvent.keyCode ==  65 ) {
      var event = document.createEvent("KeyboardEvent");
      var code  =  66 ;
      event.initKeyEvent('keydown',  true, true, window, false, false, false, false, code, code);
      input.dispatchEvent(event);
      event.initKeyEvent('keypress', true, true, window, false, false, false, false, code, code);
      input.dispatchEvent(event);
      event.initKeyEvent('keyup',    true, true, window, false, false, false, false, code, code);
      input.dispatchEvent(event);
      return false;
  }
  return true;
}
А что нужно для оперы?

Хочу просто заменять запятую на точку в цифрах. Ну не хочется на onsubmit искать те инпуты, где должны быть числа

С уважением, Vasilisk
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35238375
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте используя событие "onkeyup" дополнять текст нужным знаком.
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35238436
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не обязательно мучать keyCode, можно обойтись регулярными выражениями.
Код: plaintext
<input type="text" onkeyup="this.value = this.value.replace(/,/, '.')">
Можно даже по ходу дела попытаться запретить ввод не-цифр, только все равно нужно будет проверять еще раз на onsubmit или onchange:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<script>
function makeNumber(obj){
	obj.value = obj.value.replace(/,/, '.');
	if (/^(\-)?\d*(\.\d*)?$/.test(obj.value)) obj.defaultValue = obj.value;
	else obj.value = obj.defaultValue;
}
</script>
<input type="text" onkeyup="makeNumber(this)">
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35238438
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у подмены строки после нажатия есть один существенный минус - сбрасывается позиция курсора и скроллинга внутри поля, причем в разных браузерах по-разному
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35238476
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зы, колитесь как выкручиваетесь?
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35238478
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я. например, тупо иду в конец строки, имея в виду, что пользователь там и находится в нормальном случае. А если он корректирует строку - то вылетает в конец, но это уже как бы не чисто операторский ввод, а ввод с повышенным вниманием.
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35238531
ЯпСтам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже озабачивался данной проблемкой. Делал примерно также, как предлагал illion . Единственный минус - в браузере при нажатии "неправильного" символа он сначала отобразится, а потом быстро сотрется. Выглядит это немного смешно.
Вопрос: можно ли как-нибудь средствами JavaScript ЗАПРЕТИТЬ ввод неправильных символов?
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239033
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyЯ. например, тупо иду в конец строки, имея в виду, что пользователь там и находится в нормальном случае. А если он корректирует строку - то вылетает в конец, но это уже как бы не чисто операторский ввод, а ввод с повышенным вниманием.
тупо идти - не помогает в большинстве случаев. Например в ФФ (вроде), если текста больше, чем ширина поля, то сролл сбрасывается на начало, а курсор остается где-то в невидимом конце.
Лучше конечно блокировать или подменять события, хотя это менее кроссбраузерно и более извращенно. Ну или вообще, переосмыслить методы ввода :)
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239034
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯпСтамТоже озабачивался данной проблемкой. Делал примерно также, как предлагал illion . Единственный минус - в браузере при нажатии "неправильного" символа он сначала отобразится, а потом быстро сотрется. Выглядит это немного смешно.
Вопрос: можно ли как-нибудь средствами JavaScript ЗАПРЕТИТЬ ввод неправильных символов?
запретить проще простого - тормозить событие по onkeydown
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239379
ЯпСтам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зызапретить проще простого - тормозить событие по onkeydown
а примерчик скрипта можно?
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239444
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
event.stopPropagation();
event.preventDefault();
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239477
ЯпСтам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыevent.stopPropagation();
event.preventDefault();
Это, вапще, чё? JavaScript?
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239495
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, блин, вижал басик
...
Рейтинг: 0 / 0
[onkeypress] Подмена нажатой клавиши
    #35239761
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
2 illion
Похоже так и придется делать, но с некоторыми модификациями

2 ЯпСтам
Запрет ввода символа
Код: plaintext
1.
2.
3.
4.
5.
function onKeyPress(AEvent) {
  if ((AEvent.keyCode | AEvent.which) == 0x30)  // Блокируем символ '0'
    AEvent.returnValue = false;
  return AEvent.returnValue
}
Тестировалось в ИЕ 6 и Опере 9.26
С уважением, Vasilisk
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [onkeypress] Подмена нажатой клавиши
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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