События onkeyup, onkeydown и onpaste не работают на устройствах Android - PullRequest
1 голос
/ 16 апреля 2019

Я работал над некоторыми проверками, и мне нужно вызвать некоторые функции для событий onkeyup, onkeydown и onpaste. Однако он не работает на мобильных устройствах Android, но отлично работает на рабочем столе.

function limitInput(event, length) {
  const e = event;
  if (
    [8, 9, 13, 37, 38, 39, 40].includes(e.keyCode) ||
    (e.keyCode >= 48 && e.keyCode <= 58) ||
    (e.keyCode >= 96 && e.keyCode <= 105) ||
    ((e.ctrlKey === true || e.metaKey === true) && (e.keyCode === 65 || e.keyCode === 67 || e.keyCode === 86))) {
      /* Allow it */
  } else {
    /* No valid keyCodes */
  }
  return true;
}
<input type="text" class="form-control" onkeydown="limitInput(event, 4)" onkeyup="formatInput(event, 4, '/', 2)" onpaste="formatInput(event, 4, '/', 2, true)" required>

Может ли кто-нибудь помочь мне с этим вопросом. Заранее спасибо!

1 Ответ

0 голосов
/ 16 апреля 2019

Лучше использовать e.code вместо e.keyCode;

На основе MDN KeyboardEvent.keyCode :

Вам следует избегать этого, есливозможный;в течение некоторого времени это не рекомендуется.Вместо этого вы должны использовать KeyboardEvent.code

Замените его и посмотрите, работает он или нет.Подробнее KeyboardEvent.code

...