Можете ли да направите разлика между левия клавиш CTRL и десния клавиш CTRL, като използвате клавишни кодове в .keypress()?

Този код ще задейства предупреждение, ако натисна някой от клавишите Ctrl:

$('#text').bind('keypress', function(e) {
    if(e.keyCode==17)
    {
        alert("Boo ya");
    }
});

Има ли начин да се задейства предупреждението само ако е натиснат само левият клавиш Ctrl?


person wkm    schedule 10.12.2010    source източник
comment
възможен дубликат на Как мога да разбера дали събитие идва от десния клавиш Ctrl?   -  person Platinum Azure    schedule 08.02.2013


Отговори (2)


Не можете, поне като използвате keyCode. Ще бъде 17 и за двата ключа. Не знам за друг метод за разграничаване между двете и според мен е малко вероятно да има такъв.

person MartinodF    schedule 10.12.2010

Знам, че този въпрос е доста стар, но в днешно време изглежда възможно KeyboardEvent.code:

document.getElementById('i').addEventListener("keyup", function(e) {
  e.target.value = e.code;
});
<input id="i" value="try keyboard here">

Трябва да получите ShiftLeft или ShiftRight, като натиснете някой от клавишите Shift.

person meydlo    schedule 28.02.2018
comment
Някаква идея, защо на моя Lenovo ThinkPad P53 получавам IntlRo вместо ControlRight при натискане на десния клавиш Ctrl, както на вградената (немска) клавиатура, така и когато използвам външна (US-Layout) клавиатура? - person Schlacki; 05.05.2020