jQuery键盘事件

S W*_*S W 5 javascript jquery

使用jQuery,我想捕获一个键盘事件:

  • 用户从钥匙上抬起手指之前
  • 从键盘事件中字符已经登记在输入框中.

为了澄清,请查看此示例.当keypress火灾,该input值尚未更新.

[编辑]

显然我不清楚我需要什么.

在用户从键上抬起手指之前必须调用该函数,但是将键的字符放在输入框中之后.所以以下不起作用:

  • keydown:在keypress事件中,文本框中的值尚未更新
  • keypress:在keypress事件中,文本框中的值尚未更新
  • keyup:当用户抬起手指时调用它,这为时已晚.

Tim*_*own 13

您可以使用该input事件,该事件适用于所有主流浏览器的最新版本:

var input = document.getElementById("your_input_id");
input.oninput = function() {
    alert(input.value);
};
Run Code Online (Sandbox Code Playgroud)

不幸的是,它在IE <= 8中不起作用.但是,在这些浏览器中,您可以使用propertychangevalue属性上的事件:

input.onpropertychange = function() {
    if (window.event.propertyName == "value") {
        alert(input.value);
    }
};
Run Code Online (Sandbox Code Playgroud)

常见的JavaScript 回答者@Andy E在他的博客上详细介绍了这一点:http://whattheheadsaid.com/2011/10/update-html5-oninput-event-plugin-for-jquery