Обнаружение возврата и специальных символов с помощью JavaScript

0

Я хочу определить эти два поведения в поле ввода:

1) Клавиша Backspace

2) "@" и "#"

Используя функцию jQuery keypress, я могу обнаружить специальные символы, но не backspace. LINK → Как узнать, является ли.keyup() символьным ключом (jQuery)

Используя jQuery keyup/keydown, я могу обнаружить обратное пространство, но не специальные символы. LINK → jQuery: keyPress Backspace не срабатывает?

Как я могу определить оба поведения?

ПРИМЕЧАНИЕ. Keypress может обнаруживать Keypress только в firefox. Chrome не обнаруживает этого.

  • 0
    Что не так с событием keyup? Не уверен, чтобы понять вашу проблему. Не могли бы вы предоставить JSFiddle?
  • 0
    При этом я не могу обнаружить возврат на Chrome. (проверьте предоставленную ссылку)
Показать ещё 1 комментарий
Теги:
key

1 ответ

0
Лучший ответ

Вы можете использовать следующий фрагмент:

var keys = {};

$('input').keydown(function (e) {
    keys[e.which] = true;
});

$('input').keyup(function (e) {        
    getKeys();
    delete keys[e.which];    
});

function getKeys() {    
   if(keys[8]) {
        alert('bakspace pressed');
    }else if(keys[17] && keys[18] && keys[48]) {
        alert('@ pressed');
    }else if(keys[17] && keys[18] && keys[51]) {
        alert('# pressed');
    }    
}

DEMO

оригинальное сообщение: qaru.site/questions/142262/...

  • 0
    Это не будет работать, если я хочу написать между 2 словами. Например: «эй, там» уже есть, но я пытаюсь ввести @sam между «эй» и «там». Есть идеи ?
  • 0
    @ user2962766 Обновленный ответ для обработки этого случая
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню