jQuery - 设置textarea的最大长度

时间:2011-05-27 01:10:11

标签: javascript jquery jquery-plugins

我希望有一个最大长度的textarea,并向用户显示剩下多少个字符(就像在twitter上完成的那样),但我似乎无法让它变得那么好。

要求是:

  • 必须显示他们输入的当前字符数
  • 按住键时必须保持准确
  • 使用退格/删除时必须保持准确
  • 选择框中的文字并使用右键菜单
  • 剪切/删除时,必须保持准确
  • 必须允许用户超过限制(我讨厌当一个字段实际上阻止我翻过来时,它会让它更难编辑)

有没有jQuery插件可以做到这一点?或者是否有一种简单的javascript方式(onChange方法在他们输入时不会更新,而keydown / keyup会因鼠标更改而出现问题)

目前似乎最好的方法是让函数执行我想要的操作(检查长度并更新消息),使用keydown / keyup / change调用它,并且每秒轮询几次。还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

你通常做的是附加指向验证功能的多个事件处理程序,但是你将无法停止右键单击/粘贴...

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

function validate() {
    // validates #myTextArea
}

答案 1 :(得分:0)

尝试

$("#textarea").on('input',function(){
    if(this.value.length > 50) {
        alert("u cant input more.");
        this.value = this.value.substring(0,50);
    }
    $('#counter').html(this.value.length + '/50');
});

也许这段代码对您有帮助