Javascript/YUI字符计数器一



我已经看了好几次代码,不明白为什么第一次按键似乎不算数。

当文本区域为空字符串时,计数器显示的读数应准确。但文本区域似乎需要清空两次。。。。。。。

http://jsfiddle.net/ndreckshage/zVQZR/

请尝试侦听keyup事件。

当实际字符插入文本区域时,会触发keypress事件。当您读取文本区域的值——message.get('value')时,会返回keypress事件之前的旧值。这就解释了计数器显示的剩余字符数过时(不准确)的原因。

有关keydownkeypresskeyup事件的详细信息:http://www.quirksmode.org/dom/events/keys.html


更新:

有一种更好的方法来检测<input><textarea>的变化。

YUIevent-valuechange模块提供一个valuechange事件,当用户通过以下方式更改输入值时会触发:

  • 键入一个简单字符
  • 键入多笔划字符
  • 使用输入法编辑器
  • 使用Ctrl+X或Cmd+V从值中剪切或粘贴到值中
  • 使用键盘调用的上下文菜单进行剪切或粘贴;或
  • 从右键单击上下文菜单剪切或粘贴

以下是如何在ID为message:的输入中使用它

YUI().use('event-valuechange', function (Y) {
Y.one('#message').on('valueChange', function (e) {
// The value has changed! Handle it here...
});
});

现场演示:http://jsfiddle.net/Pd9X9/

更改为keyup事件,它在这里对我来说很好:http://jsfiddle.net/jfriend00/grZW7/.按键事件只发生在某些按键上,可能发生在字段文本更新之前,而keyup总是发生在更新之后。

使用"keyup"作为事件触发器

相关内容

  • 没有找到相关文章

最新更新