| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Не могу перехватить KeyCode клавиши "%" |
| Автор: DeamonShan 1.9.2010, 09:27 | ||||
по заложенным действиям в функцию onChangeOutPrice(), при вводе числа в поле out_price_ye[2] и при наборе в конца этого числа знака "%" в этом же поле должно высчитать тот процент, который вводился в это поле от значения поля in_price_ye[2] и приплюсовав к значению поля in_price_ye[2] присвоил в поле out_price_ye[2] результат вычислений. Иначе говоря, если ввести в поле out_price_ye[2], например, 14%, то функция должна понять что высчитывается процентная ставка от поля in_price_ye[2], при этом отсекается знак "%" и делается вычисления. Если же символ "%" не был введен, то ничего не делать. Для этого есть условие if(keycode==53). Код корректно работает, если цифры вводить из доп. цыфровых клавиш с права (на калькуляторе), если же ввести с овновных клавишь цыфру 5, то функция не ждет символа "%" и сразу вычисляет. Как избежать такое поведение кода? проблема в 5-ке, и символом "%" который стоит над ним. с другими цыфрами все отлично. |
| Автор: Amphiluke 1.9.2010, 14:01 | ||
| Для начала исправить Такого свойства (keyChar) у объекта Event, вроде, нет. Тут, мне кажется, излишне проверять определен ли атрибут keyCode. Он поддерживается всеми современными браузерами. Итого:
|
| Автор: DeamonShan 2.9.2010, 10:41 | ||
Amphiluke,
Работает, но как-то странно ведет себя... не всегда улавливает Shift. То есть надо сперва отпустить "5" а затем Shift в этом случае работает, а когда одновременно, то неработет.Условие (&& e.shiftKey) не выполняется... |
| Автор: ksnk 2.9.2010, 11:42 |
| Обычно клавиатурные ловилки ставятся на onkeydown, и onkeypress тут уже пользователь должен заботится об наличии нажатого шифта. onkeyup - вызывается, когда клавиша поднимается вверх. |