代码之家  ›  专栏  ›  技术社区  ›  Erv Walter

限制文本区域长度的最佳JavaScript解决方案是什么?

  •  7
  • Erv Walter  · 技术社区  · 15 年前

    是否有一个规范的解决方案来限制一个人可以进入文本区域的字符数?

    当然,我有服务器端验证,但是我想通过添加客户端代码来改善用户体验,以模拟您在输入[type=“text”]上使用maxlength获得的体验,这样,如果用户启用了javascript,就不会看到“您的输入太长”错误消息。

    5 回复  |  直到 15 年前
        1
  •  23
  •   Gavin Miller    15 年前

    我的非技术性服务0.02美元

  • 允许用户超过最大字符数允许他们完成一个想法。然后他们可以回去编辑这个想法。没有什么比在一句话的结尾无法完成更糟糕的了。
  •     2
  •  5
  •   Ilya Birman    15 年前

    我会这样做:

    $ ('#textarea-id').bind (
      'change input keyup keydown keypress mouseup mousedown cut copy paste',
      function () { return ($(this).val().length <= maxlength) }
    )
    

    彻底地

        3
  •  1
  •   Josh Stodola    15 年前

    这样就可以了。。。

    function textareaMaxLen(event) {
      var max = parseInt(this.attr("maxlength"), 10);
      if(this.value.length >= max)
        this.value = this.value.substr(0, max);
    }
    
    $("textarea").keyup(textareaMaxLen).blur(textareaMaxLen);
    
        4
  •  1
  •   Seb    15 年前

    将onchange事件附加到textarea。在那里,您可以检查该值是否大于相应的值。jQuery的示例:

    $("#textarea-id").change(function (){
      var text = $(this).val();
      if( text.length > MAX ){
        return false;
      }
    });
    
        5
  •  0
  •   Town    15 年前

    我过去也这样做过:

    <textarea onkeyup="checkLength(this);"></textarea>
    

    function checkLength(control) {
                if (control.value.length > 5) {
                    control.value = control.value.substr(0, 5);
                }
            }
    

    这是一个非常基本的例子,将长度固定为5,但希望能给你一个想法!