код вычитания JavaScript (-)

javascript keycode subtraction

40700 просмотра

7 ответа

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

Автор: kmunky Источник Размещён: 12.11.2019 09:14

Ответы (7)


31 плюса

Решение

JavaScript- коды charCodes , которые вы тестируете во время события нажатия клавиши, являются ASCII . 109 - правильный код ключа , если он используется в событии keydown или keyup.

"-" имеет charCode 45.

Автор: Dave Ward Размещён: 13.12.2009 11:07

10 плюса

1.event.keyCode = 109 - '-' на цифровой клавиатуре

2.event.keyCode = 189 is'- 'в буквенной клавиатуре на chrome

3.event.keyCode = 173 - '-' в клавиатуре Alphabate на клавиатуре Firefox и на Chrome 173 Клавиша для отключения звука включена |

Автор: user5943894 Размещён: 18.02.2016 05:05

9 плюса

Не делайте этого в 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

Автор: Tim Down Размещён: 13.12.2009 11:35

6 плюса

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

Автор: Rubens Farias Размещён: 13.12.2009 11:10

5 плюса

Опубликовать код Это работает для меня:

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

Автор: Matt Размещён: 13.12.2009 11:09

4 плюса

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

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

if (['-', 'Minus', 'NumpadSubtract'].includes(e.code)) {
    // do something
}
Автор: Jeff Fairley Размещён: 15.06.2018 08:20

3 плюса

Я надеюсь, что это работает для вас, он обнаруживает нажатые клавиши пользователей, и если это тот, который вы ищете, он отображает предупреждение, вы можете изменить фактическую клавишу на любую другую клавишу.

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
Автор: johnnyArt Размещён: 13.12.2009 11:33
Вопросы из категории :
32x32