我只想在按下的键正在写东西时才运行动作,所以它忽略了箭头键,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
}
});
来自评论:
问题是我的脚本只包括Number,Alphabet大写和Alphabet小写。我想只在输入内容改变时才运行动作
为了在输入中文本更改时触发事件,您需要定义一个包含输入的先前数据的全局变量。
然后当一个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" />