Показать сообщение отдельно
  #1 (permalink)  
Старый 26.06.2015, 15:15
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

Alt-комбинации
Символы, которых нет на клавиатуре, можно вводить с помощью Alt + числовой код символа. Я же хочу использовать эту возможность для своих нужд, но столкнулся с заковыркой.
На keydown и keyup я отслеживаю состояние клавиши Alt. Также требуется отслеживать набор цифровых символов. Это можно сделать в keyup или keypress. В keypress можно непосредственно через код символа определить, что это за символ нажат. В keyup через скан-код можно понять, что нажата цифровая клавиша. Вот тут и начинаются заковырки. При использовании keyup я получаю нажатую последовательность символов, но проблема в том, что никакими силами и извращениями не получается отменить вставку символа в поле ввода (вставляется символ, которому соответствует набранная комбинация). Пробовал все: stopPropagation, e.cancelBubble (хоть они и не для этого), preventDefault, return false, e.charCode = e.keyCode = e.which = 0. Хоть и написано на w3schools, что событие отменяемо, но что-то как-то не гасится оно даже без использования Alt-клавиши...
С другой стороны, если использовать keypress, то данное событие вообще не запускается, если нажата и удерживается Alt-клавиша, а вызывается лишь однократно, когда Alt отпускается и надо вводить символ по указанному коду...
И не пойму, как обойти проблему...
Ответить с цитированием