2011-05-27 122 views
2

我想拥有一个最大长度的textarea,并向用户显示剩余多少个字符(因为它是在twitter上完成的),但我似乎无法让它成为好。jQuery - 为textarea设置最大长度

的要求是:

  • 必须表明他们已经键入的字符的当前数量
  • 当一个键被按下时必须保持准确
  • 必须在退格/删除用于
  • 保持准确
  • 当使用右键菜单选择和剪切/删除文本时,必须保持准确
  • 必须允许用户超过极限(当字段实际阻止时我讨厌它这让我很难编辑它)

有没有一个jQuery插件来做到这一点?或者是有一个简单的JavaScript方法(onChange方法不会更新,因为他们正在键入,并且keydown/keyup会有鼠标更改的麻烦)

目前看来最好的方法是有一个函数可以做我想做的事(检查长度并更新消息),用keydown/keyup/change调用它,并且每秒轮询它几次。有没有更好的办法?

回答

1

你平时做的就是附加多个事件处理程序指向一个验证功能,但你不能阻止右击本/粘贴...

$(document).ready(function() { 
    $("#myTextArea").live("change keydown keyup keypress", function() { 
     validate(); 
    }); 
}); 

function validate() { 
    // validates #myTextArea 
} 
+1

而'input'事件,和'propertychange' – SLaks 2011-05-27 01:14:32

+0

我相信你不需要'$(document).ready(function(){'如果你正在使用** live ** – 2011-05-27 01:18:59