Событие нажатия клавиши JS keydown keyup не работает на IOS8 при использовании стороннего IME

$(window).keypress(function(event) {
  alert(event.which);
}

В IOS 7 это работает при использовании системного IME по умолчанию, но не работает при использовании стороннего IME. Похоже, что сторонний IME не отправляет событие keydown/keyup/keypress.

Любой обходной путь для мониторинга нажатия клавиши Enter?

PS Эта проблема схожа с тем, что сторонние клавиатуры iOS 8 не регистрируют javascript/jQuery keyup, нажатие клавиш, нажатие клавиш и т. Д., Но есть ли обходной путь для отслеживания события нажатия клавиши Enter?

1 ответ

Решение

Я обхожу обходной путь

  $("#textarea").on('input propertychange paste',function(e){
    var input = e.currentTarget.value;
    if(input[input.lenght -1] == '\n') {
      //do something
    }
  })
  1. Использовать текстовую область вместо ввода
  2. Добавьте слушатель 'input propertychange paste' на textarea
  3. проверьте, является ли Enter последним символом значения текстовой области
Другие вопросы по тегам