【问题标题】:jQuery - set max length for textareajQuery - 设置文本区域的最大长度
【发布时间】:2011-05-27 01:10:11
【问题描述】:

我想要一个最大长度的文本区域,并向用户显示剩余的字符数(就像在 twitter 上所做的那样),但我似乎无法让它变得那么好。

要求是:

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

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

目前似乎最好的方法是拥有一个功能来做我想做的事(检查长度并更新消息),用 keydown/keyup/change 调用它,并且每秒轮询几次.有没有更好的办法?

【问题讨论】:

    标签: javascript jquery jquery-plugins


    【解决方案1】:

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

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

    【讨论】:

    • 还有input 事件和propertychange
    • 如果你使用 live,我相信你不需要$(document).ready(function() {
    【解决方案2】:

    试试这个

    $("#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');
    });
    

    也许这段代码对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多