Вопрос

Хорошо, мне нужен мой код, чтобы проверить, был ли нажат минус/вычтение/- если он был нажат, я хочу, чтобы ящик оповещений выпал. Я попробовал с обоими 109 а также 189 Ключевые коды, но я все еще не получаю желаемый результат. Хотя я нажимаю "-" Я не получаю эту оповещную коробку

Это было полезно?

Решение

JavaScript Чаркоды, на что вы тестируете во время мероприятия KeyPress, Асии. Анкет 109 - правильный ключевой код, если используется в событии Keydown или Keyup.

"-" имеет Чаркод 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

1.Event.keycode = 109 is '-' на Numpad

2. Event.keycode = 189 is'- 'в клавишке Alphabate Keybord на Chrome

3.Event.keycode = 173 IS '-' в ключевом ключевом ключевом алфабате на Firefox & On Chrome 173 KeyCord-немое |

Вы можете открыть для себя ключевые коды таким образом:

Разместите какой -нибудь код. Это работает для меня:

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-chores-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

Люди уходят от event.keyCode а также event.charCode Из -за непоследовательных реализаций в браузерах. Вместо этого используйте event.code. Анкет Это string поле.

Большинство браузеров поддерживают Array.includes, поэтому я склонен делать следующее:

if (['-', 'Minus', 'NumpadSubtract'].includes(e.code)) {
    // do something
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top