Определить, если нажата клавиша пишет что-то - Javascript - PullRequest
0 голосов
/ 02 сентября 2018

Я хочу выполнить действие, только если нажатая клавиша что-то пишет, поэтому она игнорирует клавиши со стрелками, клавишу Shift или клавишу ввода и т. Д.

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

$('body').on('keyup', 'input', function(e) {
  if (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 65 && e.keyCode <= 90 || e.keyCode >= 97 && e.keyCode <= 122) {
      // do something
  }
});

1 Ответ

0 голосов
/ 02 сентября 2018

Из комментариев:

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

Чтобы вызвать событие при изменении текста на входе, необходимо определить глобальную переменную, содержащую предыдущие данные ввода.

Затем, когда происходит событие keyup, вы можете проверить, является ли input_data==new_input_data, затем делать все, что вы хотите.

var input_data, new_input_data;
input_data = $("#myinput").val();
new_input_data="";
$('body').on('keyup', 'input', function(e) {
  new_input_data = $("#myinput").val();
  if(input_data!=new_input_data){
      alert("text changed");
      input_data = new_input_data;
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myinput" />
...