Скрипт для преобразования символов при нажатии клавиш не работает на устройствах с сенсорным экраном - PullRequest
0 голосов
/ 29 сентября 2019

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

$("#test").on("keydown", function(e) {
  var keyPressed = e.key;
  var userInput = $(this).val();
  var regex = /[abc]+/g;
  var keysAllowed = ["Backspace", " ", "Enter", "Delete"];
  if (regex.test(keyPressed) == true || keysAllowed.indexOf(keyPressed) !== -1) {
    if (keyPressed == "a") {
      e.preventDefault();
      var keyPressedConverted = "b";
      userInput += keyPressedConverted;
      $("#test").val(userInput);
    } else if (keyPressed == "b") {
      e.preventDefault();
      var keyPressedConverted = "c";
      userInput += keyPressedConverted;
      $("#test").val(userInput);
    } else if (keyPressed == "c") {
      e.preventDefault();
      var keyPressedConverted = "d";
      userInput += keyPressedConverted;
      $("#test").val(userInput);
    }
  } else {
    e.preventDefault();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="test" type="text">

Я пытался поставить .on("keydown input"), .on("keydown touchend"), .on("input touchend") и все равно скрипт не работает.

Пока яя пытаюсь заставить этот скрипт работать в браузере Android, но я хотел бы работать на каждом устройстве с сенсорным экраном.

Есть ли какое-либо универсальное решение?

ОБНОВЛЕНИЕ

Я попробовал свой скрипт на Firefox для Android Mobile, и он отлично работает, но все равно не работает на Chrome для Android Mobile.

...