什么是限制textarea长度的最佳JavaScript解决方案?

时间:2009-03-17 14:19:36

标签: javascript html

是否有规范的解决方案来限制某人可以进入textarea的字符数?

我当然有服务器端验证,但希望通过添加客户端代码来模拟输入[type =“text”]上使用maxlength获得的体验来改善用户体验,以便用户永远不会看到“你的输入太长“如果启用了javascript,则会出现错误消息。

5 个答案:

答案 0 :(得分:23)

我的非技术性0.02美元

在评论字段中执行SO操作,提供有关用户剩余字符长度的反馈,并允许他们超过最大值,但不提交> 300个字符。原因如下:

  • 允许用户超过最大字符数可以让他们完成一个想法。然后他们可以回去编辑这个想法。没有什么比在句子结尾处无法完成它更糟糕了。
  • 提供字符长度的反馈可以让人们不必猜测它们的长度。

  • 答案 1 :(得分:5)

    我会这样做:

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

    如此多的叮当声完全确定: - )

    答案 2 :(得分:1)

    将onchange事件附加到textarea。在那里你可以检查值是否大于适当的值。 jQuery示例:

    $("#textarea-id").change(function (){
      var text = $(this).val();
      if( text.length > MAX ){
        return false;
      }
    });
    

    答案 3 :(得分:1)

    这样做......

    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 :(得分:0)

    我过去这样做过:

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

    然后实现这个功能:

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

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