在keyup上的文本区获取字符
Getting characters in textarea on keyup
我想获得文本区域中的字符数。这需要在每次击键时更新。所以我使用了这个简单的函数:
$(document).on('keyup', 'textarea', function () {
var count = $(this).val().length;
console.log(count);
});
现在的问题是,如果我尝试键入非常快,计数重复。我们可以在控制台看到这种重复。这种重复背后的原因是什么?我怎样才能避免呢?这里有一个小提琴:https://jsfiddle.net/w6mzzfd8/
谢谢!
按文档:
当浏览器注册键盘输入时,keypress事件被发送给元素。这类似于keydown事件,除了重复键的情况。如果用户按下并保持一个键,则触发一次keydown事件,但是为每个插入的字符触发单独的keypress事件。此外,修改键(如Shift)会触发按下键事件,但不会触发按下键事件。
解决方案:
用keydown
代替keyup
代码:
$(document).on('keydown', 'textarea', function () {
var count = $(this).val().length;
console.log(count);
});
演示工作相关文章:
- RegEx只获取特殊字符,前后不获取任何字符
- 获取特殊字符后没有单词的句子
- 如何从键Code;中获取字符串/字符值;
- javascript获取字符前的字符串
- 忽略任何非小写字符(如数字、大写字母和符号)并获取k的值
- 如何在 JavaScript 中获取非重复字符及其计数
- 从文件中字符的索引中获取行号
- 如何使用jQuery获取url的最后两个字符
- Javascript-使用Regex获取两个字符之间的字符
- jquery获取字符限制
- 获取字符后的数字值
- 如何在 JavaScript 中获取字符的 ASCII 值
- 如何在 iframe 中获取字符偏移量
- 如果使用 SHIFT 如何获取字符代码
- 如何获取字符范围
- Regex获取字符和空白之间的字符串,并排除第一个分隔符
- Unicode:如何获取字符的所有码点,例如ã(所以它可以在JavaScript正则表达式中使用)
- JavaScript:尝试获取字符宽度并进行比较
- 如果有'空格,则获取字符后的所有字符串
- 在keyup上的文本区获取字符