хорошо, мне нужен мой код, чтобы проверить, был ли minus/subtract/-нажат, если он был нажат, я хочу окно предупреждений к населению, которое я попробовал обоими 109
и 189
коды клавиши, но я все еще не получаю желаемый результат. хотя я нажимаю "-"
я не получаю то окно предупреждений
Код JavaScript charCodes , который вы проверяете во время нажатия клавиши, - это ASCII . 109 - правильный keyCode , если он используется в событии keydown или keyup.
«-» имеет charCode из 45.
Не делайте этого в обработчике событий keydown
- вы полностью зависите от идей разных браузеров о кодах клавиш и возможных различиях между кодами клавиш для разных клавиатур. типы. Сделайте это в событии keypress
, и тогда вы сможете вместо этого получить код символа, который вам действительно нужен.
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (charStr == "-") {
alert("Minus!");
}
};
Вся информация, которая может вам когда-либо понадобиться о ключевых событиях JavaScript: http: / /unixpapa.com/js/key.html
Разместите код. У меня это работает:
document.onkeydown = function (e) {
if (e.keyCode === 109 || e.keyCode === 189) {
alert('minus sign pressed');
}
};
Полный список кодов клавиш здесь: http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes. aspx
Надеюсь, это сработает для вас. Он обнаруживает нажатые пользователем клавиши, и если это именно та, которую вы ищете, отображается предупреждение, вы можете изменить фактическую клавишу на любую другую.
function detectSubstract(e)
{
var evtobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
var actualkey=String.fromCharCode(unicode)
if (actualkey=="-")
{
alert('You pressed the minus key')
}
}
document.onkeypress=detectSubstract