确定按下的键是否在写东西-Javascript

时间:2018-09-02 14:23:07

标签: javascript keycode keyup onkeyup

我只想在按下的键在写东西时才执行操作,因此它会忽略箭头键,Shift键或Enter键等。

我正在使用以下脚本,但我想找到一种改进方法。

$('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 :(得分:0)

从评论中:

  

问题是我的脚本只包含数字,字母大写和字母小写。我只想在输入内容更改时执行操作

为了在输入中的文本更改时触发事件,您需要定义一个全局变量来保存输入的先前数据。

然后,当触发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" />