按键时的Javascript事件,但在输入字符后

按键时的Javascript事件,但在输入字符后,javascript,jquery,keyboard,Javascript,Jquery,Keyboard,所以我在文本字段上进行字符计数。我需要更新keypress而不是keyup上的字符数。问题是,使用jquery的.keydown方法,它会在输入字符之前刷新计数器,因此计数器总是比实际计数晚1次按键。如何在按键时更改计数,但等待输入字符 谢谢 改用。释放钥匙时触发,因此计数器将随之递增 从文件中: 当用户在上释放密钥时,keyup事件被发送到元素 键盘。它可以附加到任何元素,但事件仅限于 发送到具有焦点的元素 您以与任何其他事件相同的方式使用它: $('input').keyup(functio

所以我在文本字段上进行字符计数。我需要更新keypress而不是keyup上的字符数。问题是,使用jquery的.keydown方法,它会在输入字符之前刷新计数器,因此计数器总是比实际计数晚1次按键。如何在按键时更改计数,但等待输入字符

谢谢

改用。释放钥匙时触发,因此计数器将随之递增

从文件中:

当用户在上释放密钥时,keyup事件被发送到元素 键盘。它可以附加到任何元素,但事件仅限于 发送到具有焦点的元素

您以与任何其他事件相同的方式使用它:

$('input').keyup(function(e) {
    var text = $(this).val();
    console.log(text.length);
});
确保按上述示例计算文本框中的字符数,而不是按键数。例如,按Ctrl+C将导致额外计算两个字符,但实际上没有输入到输入中

如果您使用的是jQuery 1.7+,请使用.on:

改用。释放钥匙时触发,因此计数器将随之递增

从文件中:

当用户在上释放密钥时,keyup事件被发送到元素 键盘。它可以附加到任何元素,但事件仅限于 发送到具有焦点的元素

您以与任何其他事件相同的方式使用它:

$('input').keyup(function(e) {
    var text = $(this).val();
    console.log(text.length);
});
确保按上述示例计算文本框中的字符数,而不是按键数。例如,按Ctrl+C将导致额外计算两个字符,但实际上没有输入到输入中

如果您使用的是jQuery 1.7+,请使用.on:

一个简单的例子:

一个简单的例子:

setTimeout似乎在这里起作用:

$('input').keydown(function(e) {
    var $this = $(this);
    setTimeout(function() {
        var text = $this.val();
        console.log(text.length);
    }, 0);
});
setTimeout似乎在这里起作用:

$('input').keydown(function(e) {
    var $this = $(this);
    setTimeout(function() {
        var text = $this.val();
        console.log(text.length);
    }, 0);
});

听起来你应该使用keyup,它做你想要的。在keyup上,不是保证可以输入字母吗?我不明白你怎么能一个一个地离开…为什么不去开玩笑呢?这正是你在这个场景中想要的。按键感觉更灵敏。Keyup太简单了。听起来你应该使用Keyup,它可以做你想要的。在Keyup上,不是保证可以输入字母吗?我不明白你怎么能一个一个地离开…为什么不去开玩笑呢?这正是你在这个场景中想要的。按键感觉更灵敏。键入太简单了。我强烈建议您检查输入或文本区域的实际值,因为[CTRL]+[C]很可能不止一个字符。@Erik谢谢您。我个人总是计算输入中的字符数,但我已经编辑了我的答案,以明确这是您应该做的。为什么.on'keyup'优于.keyup?它不一定优于.keyup,但它是处理1.7以上jQuery版本(含1.7)中事件的推荐方法。任何一种方式都是可以接受的,但是应该注意。如果使用第三个参数,on支持事件委派。我强烈建议您检查输入或文本区域的实际值,因为[CTRL]+[C]很可能不止一个字符。@Erik谢谢您。我个人总是计算输入中的字符数,但我已经编辑了我的答案,以明确这是您应该做的。为什么.on'keyup'优于.keyup?它不一定优于.keyup,但它是处理1.7以上jQuery版本(含1.7)中事件的推荐方法。任何一种方式都是可以接受的,但是应该注意,如果使用第三个参数,on支持事件委托。