使用jQuery,我想捕获一个键盘事件,即:
若要澄清,请查看此示例。当keypress触发时,input值尚未更新。
编辑
显然我不清楚我需要什么。
该函数必须在之前调用用户从键中抬起手指,但是在之后的键的字符被放置在输入框中。因此,以下内容不起作用:
keypress事件中,文本框中的值尚未更新keypress事件中,文本框中的值尚未更新发布于 2011-04-02 18:18:08
您可以使用input事件,它适用于所有主要浏览器的最新版本:
var input = document.getElementById("your_input_id");
input.oninput = function() {
alert(input.value);
};不幸的是,它不能在IE <= 8中工作。但是,在这些浏览器中,您可以在value属性上使用propertychange事件:
input.onpropertychange = function() {
if (window.event.propertyName == "value") {
alert(input.value);
}
};因此,普通的JavaScript应答者@Andy E在他的博客https://web.archive.org/web/20140626060232/http://whattheheadsaid.com/2011/10/update-html5-oninput-event-plugin-for-jquery上详细介绍了这一点。
发布于 2011-04-01 23:35:41
您可以侦听keydown事件并将值存储在变量中。该变量将具有新输入之前的值,新输入将包含在keyup事件中。
更新:
好吧,我误解了你的要求,但是没有一个事件能满足你的需求。我唯一能想到的模拟这种行为的方法是:
keydown/keypressevent对象获取值(获取event.which,然后将其转换为实际值)这里有一个小提琴:http://jsfiddle.net/HpXuU/13/
这显然不是一个完美的解决方案,因为它需要一些(可能是不必要的)工作才能完成。我建议重新考虑你的需求,但如果这种行为绝对是你所需要的,我认为这是朝着正确方向迈出的一步。
发布于 2011-04-01 23:46:09
使用键控事件,jsFiddle上的实例
$("textarea").keyup(function(e){
alert($(this).val());
});它发生在你举起钥匙之后。我不知道您想要实现什么,但是您可以在解除密钥(在keydown或keypress上)之前存储状态,并在需要时稍后进行恢复。您也可以使用e.preventDefault(),所以即使在键打开之后,它也不会注册区域中的值。
https://stackoverflow.com/questions/5519936
复制相似问题